バージョン選択

フォーラム

メニュー

オンライン状況

29 人のユーザが現在オンラインです。 (19 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 29
もっと...

サイト内検索

質問 > フロント機能 > getList関数の引数の指定

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
C.C.A
投稿日時: 2020/11/10 14:21
対応状況: −−−
新米
登録日: 2020/11/2
居住地:
投稿: 4
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
居住地:
投稿: 7
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
居住地:
投稿: 4
Re: getList関数の引数の指定
できました!
ありがとうございます!
その形式も試したことがあったのですが、その際は上手くいかず……
何か記述ミスがあったのかもしれません。
本当にありがとうございます!
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

公式ストアEC-CUBE4系デザインテンプレート続々リリース中

統計情報

総メンバー数は67,470名です
総投稿数は98,836件です

投稿数ランキング

1
seasoft
7333
2
AMUAMU
2712
3
468
2696
4
nanasess
2116
5
umebius
1792
6
yuh
1612
7
red
1427
8
h_tanaka
1051
9
fukap
907
10
tsuji
863
11
shutta
835
12
tao_s
792
13 ramrun 789
14 karin 657
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
485
20 tonton 437


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.