バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > ArrayCollectionで複数件取得できるはずが1件しか取得できない

管理機能

新規スレッドを追加する

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
sw_sn
投稿日時: 2023/12/27 19:40
対応状況: −−−
常連
登録日: 2018/5/25
居住地:
投稿: 49
Re: ArrayCollectionで複数件取得できるはずが1件しか取得できない
参考にならないかも知れませんが、私だったら以下を試してみます。

・devモードのprofilerでSQLを確認する
・$queryBuilder->getQuery()->getSQL()でSQLを確認する
・以下のようにEAGERを設定して、データの先読みを強制してみる
 @ORM\ManyToOne(targetEntity="Customize\Entity\Product", inversedBy="ProductDetails", fetch="EAGER")
k.nakayama
投稿日時: 2023/12/27 8:56
対応状況: −−−
常連
登録日: 2019/10/11
居住地:
投稿: 69
Re: ArrayCollectionで複数件取得できるはずが1件しか取得できない
$qbにwhereなどでの絞り込みは続いていないでしょうか?

絞り込みがあった場合、Collectionの要素数が少なく取得されることは可能性があります。


----------------
----------------
ゴールドランク インテグレートパートナー U-Mebius

emotion
投稿日時: 2023/12/26 13:53
対応状況: −−−
新米
登録日: 2023/4/26
居住地:
投稿: 9
Re: ArrayCollectionで複数件取得できるはずが1件しか取得できない
$qb = $this->createQueryBuilder('p')
->addSelect('pd')
->leftJoin('p.ProductDetails', 'pd');

qbの部分はこんな感じです。
k.nakayama
投稿日時: 2023/12/14 17:28
対応状況: −−−
常連
登録日: 2019/10/11
居住地:
投稿: 69
Re: ArrayCollectionで複数件取得できるはずが1件しか取得できない
Collectionとのことなので関係ないかもしれませんが、
「qbでもaddSelectとleftJoinをしてデータを取得している」というのが少し気になったのですが、qbで取得されているあたりのコードを共有してもらうことはできますか?


----------------
----------------
ゴールドランク インテグレートパートナー U-Mebius

emotion
投稿日時: 2023/12/13 10:58
対応状況: −−−
新米
登録日: 2023/4/26
居住地:
投稿: 9
Re: ArrayCollectionで複数件取得できるはずが1件しか取得できない
__constructにArrayCollectionの初期化も追加しています。
getter、setterもProductImageと全く同じ作りにしています。
fukuoka
投稿日時: 2023/12/12 18:44
対応状況: −−−
半人前
登録日: 2022/8/9
居住地:
投稿: 19
Re: ArrayCollectionで複数件取得できるはずが1件しか取得できない
Customizeに新たに作っているということであれば、もしかしたらArrayCollectionの初期化の部分の可能性はありませんでしょうか?
ProductImageの場合はこのような処理をしていますがいかがでしょうか?

public function __construct()
        {
            $this->ProductImage = new \Doctrine\Common\Collections\ArrayCollection();
        }
yuh
投稿日時: 2023/12/11 21:34
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1893
Re: ArrayCollectionで複数件取得できるはずが1件しか取得できない
getter、setter部分ってどうなってますか?


----------------


http://ec-lab.net/

emotion
投稿日時: 2023/12/11 16:05
対応状況: −−−
新米
登録日: 2023/4/26
居住地:
投稿: 9
Re: ArrayCollectionで複数件取得できるはずが1件しか取得できない
商品テーブルをカスタマイズ領域に再構築しているので
Customize\Entity\Productで合っています。
shinra
投稿日時: 2023/12/11 15:30
対応状況: −−−
一人前
登録日: 2017/9/2
居住地:
投稿: 140
Re: ArrayCollectionで複数件取得できるはずが1件しか取得できない
商品詳細テーブルのEntity↓
/**
* @var \Customize\Entity\Product
*
* @ORM\ManyToOne(targetEntity="Customize\Entity\Product", inversedBy="ProductDetails")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="product_id", referencedColumnName="id")
* })
*/
private $Product;


上記ですが、Customize\Entity\ProductではなくEccube\Entity\Product
じゃないでしょうか?
一度確認して貰えればと思います
emotion
投稿日時: 2023/12/11 12:19
対応状況: −−−
新米
登録日: 2023/4/26
居住地:
投稿: 9
ArrayCollectionで複数件取得できるはずが1件しか取得できない
[EC-CUBE]     4.1.2-p1
[レンタルサーバ] レンタルサーバ名
[OS]         使用しているOS名、バージョン
[PHP]         7.4.30(サーバ)7.4.26 (ローカル)
[データベース]     MySQL
[WEBサーバ]     使用しているWEBサーバ名、バージョン
[ブラウザ]     使用しているブラウザ名、バージョン
[導入プラグインの有無] プラグインあり
[カスタマイズの有無] カスタマイズあり
[現象]

商品テーブルにORMで紐づく、
商品詳細テーブルを作成し、

商品テーブルのEntity↓
/**
* @var \Doctrine\Common\Collections\Collection|ProductDetail[]
*
* @ORM\OneToMany(targetEntity="Customize\Entity\ProductDetail", mappedBy="Product", cascade={"persist","remove"})
*
*/
private $ProductDetails;


商品詳細テーブルのEntity↓
/**
* @var \Customize\Entity\Product
*
* @ORM\ManyToOne(targetEntity="Customize\Entity\Product", inversedBy="ProductDetails")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="product_id", referencedColumnName="id")
* })
*/
private $Product;

としました。(ProductImageを参考に構成)
get, setも通常通り作成し、qbでもきちんとaddSelectとleftJoinをしてデータを取得しているのに、なぜか商品テーブルのデータを取得したときに、
紐づく商品詳細データがfindByで取得した場合は2件取得できるのに対して、Collectionでは1件しか取得できません。


構成的にはProductImageと全く同じはずなのに
なぜデータが1件しか取得できないかが不明です。
お分りの方いらっしゃったらアドバイスぜひ宜しくお願い致します。

スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は96,029名です
総投稿数は111,647件です

投稿数ランキング

1
seasoft
7369
2
468
3217
3
AMUAMU
2712
4
nanasess
2325
5
umebius
2085
6
yuh
1893
7
h_tanaka
1852
8
red
1574
9
mcontact
1536
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
804
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

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

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