2016-09-26 8 views
1

私のクエリーセレクターに問題があります。私のクエリは、カテゴリの一覧、および各カテゴリの製品のネストされた配列を返すcakephpクエリーセレクターが指定されたフィールドを返さない

$products = $this->Categories->find() 
         ->where(['active' => 1]) 
         ->contain(['Products' => function($q) { 
           return $q; 
          } 
         ]); 

のように見えます。この場合、productsテーブルからすべてのフィールドをreturingしています。

しかし、すぐに私はcontain

このような
->contain(['Products' => function($q) { 
            return $q->select(['code', 'name']); 
           } 
          ]); 

を変更すると、その後の製品の配列は空です。私は行方不明のものがありますか?

+0

をオフにしていますか?また、あなたの_exact_ CakePHPのバージョン( '3.x.x'、' vendor/cakephp/cakephp/VERSION.txt'を参照してください)に感謝します - ありがとう! – ndm

+0

バージョンは '3.2.12'で、' Products-> belongsTo( 'Categories'); ' – user3733648

答えて

0

あなたはそれ以外のケーキはそのカテゴリーに製品をリンクする方法を知りません選択したフィールド

return $q->select(['code', 'name', 'category_id']); 

のリストにcategory_idを含める必要があります。

は通常、あなたはそのことについて警告が表示されるはずですが、多分あなたはデバッグモードは `Products`協会のどのようなタイプである

関連する問題