2016-09-26 47 views
1

我的查詢選擇器有問題。我的查詢看起來像cakephp查詢選擇器不返回指定的字段

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

它返回類別列表和每個類別的產品的嵌套數組。在這種情況下,它正在回顧產品表中的所有字段。

,但只要我改變contain這樣

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

那麼產品陣列是空的。有什麼我失蹤的東西?

+0

哪種類型的關聯是'Products'?也請提及您的_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否則餅不知道如何將產品鏈接到它的類別。

通常你應該會看到一個有關警告,但也許你已經調試模式下關閉