2016-09-13 2 views
0

Ich habe eine Abfragecakephp Query Builder arbeitet nicht

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

, die nur Produktnamen und nicht die Größe des Produkts Kategorie zurück. Aber wenn die select Funktion entfernen, die die Feldnamen akzeptiert, dann liefert es auch die Größen

Gibt es eine Lösung dafür?

+0

was hoffen Sie ist zurückgegeben? – bill

+0

Wählen Sie ID, Name, Kategorie_ID – Salines

Antwort

1

Nach dem CakePHP 3 Buch, im Bereich „Selecting Rows From A Table“ können Sie festlegen, welche Sie zurückFelder wollen, indem sie in einem select Array einschließlich:

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

Also für dein, du bist Begrenzung der Felder, die zurückgegeben werden, weil Sie angeben, dass Sie nur das Feld "Name" möchten.