ich in controller
diesen Code bin mit verbundenem Ergebnis zu erhalten, anstatt in CakePHP 3,2join nicht in CakePHP Arbeits 3
$abc = $this->Products->SellerProducts->find('all', [
'conditions' => [
'Products.subcategory_id' => $id,
'SellerProducts.stock >' => 0,
],
'join' => [
'products' => [
'table' => 'Products',
'type' => 'INNER',
'conditions' => [
'products.id = SellerProducts.product_id'
]
],
'brands' => [
'table' => 'Brands',
'type' => 'INNER',
'conditions' => 'brands.id = products.brand_id'
],
'product_colors' => [
'table' => 'ProductColors',
'type' => 'INNER',
'conditions' => 'product_colors.product_id = products.id'
],
'colors' => [
'table' => 'Colors',
'type' => 'INNER',
'conditions' => 'colors.id = product_colors.color_id'
]
]
]);
Aber auf debug
assoziiert enthält, gibt es nur Daten aus SellerProducts
und schließt nicht (beitreten) anderen Tabellen.
Ich möchte Ergebnis verbunden und nicht zugeordnetes Ergebnis mit contain
Methode, weil contain
gibt Multilevel-Array, die Sammlung von verknüpften Daten aus Multilevel-Array ist schwierig.
Edit 2: Ergebnis des Debug ($ abc);
SELECT SellerProducts.id AS `SellerProducts__id`, SellerProducts.seller_id AS `SellerProducts__seller_id`, SellerProducts.product_id AS `SellerProducts__product_id`, SellerProducts.selling_price AS `SellerProducts__selling_price` FROM seller_products SellerProducts INNER JOIN Products products ON products.id = SellerProducts.product_id INNER JOIN Brands brands ON brands.id = products.brand_id INNER JOIN ProductColors product_colors ON product_colors.product_id = products.id INNER JOIN Colors colors ON colors.id = product_colors.color_id WHERE (Products.subcategory_id = :c0 AND SellerProducts.stock > :c1)
auf dem Debug zeigt die Abfrage die 'Join's, die Sie angewendet haben? – Riad
Siehe Edit 2, es verbindet, aber nur sellerProducts Spalten –
wählen Sie die Felder zum Abrufen anderer Spalten. 'SellerProducts-> find ('alle', array ('fields' => array() ...)' – Riad