質問 > 管理機能 > 特定カテゴリでのおすすめ商品の表示数について |
管理機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
r.ts |
投稿日時: 2024/3/3 11:32
対応状況: −−−
|
常連 登録日: 2024/2/29 居住地: 投稿: 32 |
特定カテゴリでのおすすめ商品の表示数について ▼テンプレート
[EC-CUBE] EC-CUBE4.1 [レンタルサーバ] xserver [PHP] 7.4 [データベース] Mysql [導入プラグインの有無] おすすめ商品プラグイン [カスタマイズの有無] 無し [現象] デフォルトのおすすめ商品プラグインについて 質問です。 下記の方法で特定カテゴリのおすすめ商品を一覧で 表示しています。
ここで表示数4つだけにしたい場合
とすると下記のようなエラーが出てしまいます。 Argument 2 passed to Doctrine\ORM\EntityRepository::findBy() must be of the type array or null, int given, called in /httpdocs/ec/vendor/twig/twig/src/Extension/CoreExtension.php on line 1564 どのようにしたらよいでしょうか |
k.nakayama |
投稿日時: 2024/3/3 12:11
対応状況: −−−
|
常連 登録日: 2019/10/11 居住地: 投稿: 69 |
Re: 特定カテゴリでのおすすめ商品の表示数について findByは2番目の引数は並び順の指定ですが、書かれたコードにはそれがないようです。
https://umebius.com/eccube/how-to-use-repository-findby-method/ 並び順を指定しないなら、nullか空配列を渡すかだと思います。 .findBy({product_id: RecommendProduct.Product.id},4,0) ではなく .findBy({product_id: RecommendProduct.Product.id},{}, 4,0) です。
|
r.ts |
投稿日時: 2024/3/3 15:18
対応状況: −−−
|
常連 登録日: 2024/2/29 居住地: 投稿: 32 |
Re: 特定カテゴリでのおすすめ商品の表示数について .findBy({product_id: RecommendProduct.Product.id},{}, 4,0)
だと同様のエラーがでてしまいましたので 下記のようにしてみました。
エラーは解消されましたが なぜか全件が表示されてしまうようです。 |
k.nakayama |
投稿日時: 2024/3/3 16:11
対応状況: −−−
|
常連 登録日: 2019/10/11 居住地: 投稿: 69 |
Re: 特定カテゴリでのおすすめ商品の表示数について ロジックの問題ですね。ProductCategoriesの取得数を制限しても、商品数は4つにならないでしょう。
RecommendProductRepositoryに数を指定して商品取得するメソッド作るのが一番早いですが、twigだけでやるなら {% set i = i + 1 %} のように、何個表示したか自分でカウントして、4個表示したいなら{% if i <= 4 %}のうにしてif文で制御すれば良いかと思います。 (あと、おそらく実現されたいことは特にfindBy使う必要なさそうですね。 RecommendProduct.Product.ProductCategories で十分ですね。)
|
r.ts |
投稿日時: 2024/3/5 9:11
対応状況: −−−
|
常連 登録日: 2024/2/29 居住地: 投稿: 32 |
Re: 特定カテゴリでのおすすめ商品の表示数について ありがとうございました。
下記コードで対応しました。 RecommendProductRepository.php
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |