2016-09-13 2 views
0

У меня есть запросCakePHP конструктор запросов не работает

$p = $this->Products 
    ->findById($id) 
->select(['name']) 
    ->contain(['Categories.Sizes' => function($q) { 
     return $q->select(['id', 'name']); 
    } 
    ]); 

, который возвращает только имя продукта, а не размер категории продукта. Но если удалить функцию select, которая принимает названия полей, то она поставляет также размеры

Есть ли какое-либо решение для этого?

+0

Надеемся, что вы надеетесь. – bill

+0

выберите id, name, category_id – Salines

ответ

1

Согласно книге CakePHP 3, в области «Selecting Rows From A Table», вы можете указать, какие поля которые вы хотите получить, включив их в select массиве:

$query = $articles 
    ->find() 
    ->select(['id', 'name']) // <-- Notice this line 
    ->where(['id !=' => 1]) 
    ->order(['created' => 'DESC']); 

Так что для вашей, вы ограничивая поля, которые возвращаются, потому что вы указываете, что хотите только поле «имя».