質問 > フロント機能 > getList関数の引数の指定 |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
C.C.A |
投稿日時: 2020/11/10 14:21
対応状況: −−−
|
新米 登録日: 2020/11/2 居住地: 投稿: 9 |
getList関数の引数の指定 src/Eccube/Repository/CategoryRepository.php 63行目からの、以下getList関数を
src/Eccube/Form/Type/SearchProductBlockType.php 41行目getList(null, true)で呼び出したいのですが、指定の親カテゴリ(nullになっている部分に親カテゴリを渡す)をどのように指定したら良いかわかりません。 引数の指定方法お教えいただけますでしょうか。 src/Eccube/Repository/CategoryRepository.php (63) /** * カテゴリ一覧を取得する. * * 引数 $Parent を指定した場合は, 指定したカテゴリの子以下を取得する. * * @param Category|null $Parent 指定の親カテゴリ * @param bool $flat trueの場合, 階層化されたカテゴリを一つの配列にまとめる * * @return Category[] カテゴリの配列 */ public function getList(Category $Parent = null, $flat = false) { $qb = $this->createQueryBuilder('c1') ->select('c1, c2, c3, c4, c5') ->leftJoin('c1.Children', 'c2') ->leftJoin('c2.Children', 'c3') ->leftJoin('c3.Children', 'c4') ->leftJoin('c4.Children', 'c5') ->orderBy('c1.sort_no', 'DESC') ->addOrderBy('c2.sort_no', 'DESC') ->addOrderBy('c3.sort_no', 'DESC') ->addOrderBy('c4.sort_no', 'DESC') ->addOrderBy('c5.sort_no', 'DESC'); if ($Parent) { $qb->where('c1.Parent = :Parent')->setParameter('Parent', $Parent); } else { $qb->where('c1.Parent IS NULL'); } $Categories = $qb->getQuery() ->useResultCache(true, $this->getCacheLifetime()) ->getResult(); if ($flat) { $array = []; foreach ($Categories as $Category) { $array = array_merge($array, $Category->getSelfAndDescendants()); } $Categories = $array; } return $Categories; } src/Eccube/Form/Type/SearchProductBlockType.php (35) /** * {@inheritdoc} */ public function buildForm(FormBuilderInterface $builder, array $options) { $Categories = $this->categoryRepository ->getList(null, true); $builder->add('category_id', EntityType::class, [ 'class' => 'Eccube\Entity\Category', 'choice_label' => 'NameWithLevel', 'choices' => $Categories, 'placeholder' => 'common.select__all_products', 'required' => false, ]); $builder->add('name', SearchType::class, [ 'required' => false, 'label' => 'common.search_keyword', 'attr' => [ 'maxlength' => 50, ], ]); } |
tsasaki |
投稿日時: 2020/11/13 21:08
対応状況: −−−
|
常連 登録日: 2018/12/20 居住地: 投稿: 42 |
Re: getList関数の引数の指定 特定のカテゴリというのは変更がないものでしょうか?
固定でいいのであれば,下記の形式で$categoryIdを特定のカテゴリのIDにすれば良いと思います。 前提の認識違いでしたらすみません。 $Category = $this->categoryRepository->find($categoryId); $Categories = $this->categoryRepository->getList($Category); |
C.C.A |
投稿日時: 2020/11/16 14:20
対応状況: −−−
|
新米 登録日: 2020/11/2 居住地: 投稿: 9 |
Re: getList関数の引数の指定 できました!
ありがとうございます! その形式も試したことがあったのですが、その際は上手くいかず…… 何か記述ミスがあったのかもしれません。 本当にありがとうございます! |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |