我有两张桌子orders
和sub_orders
。它们的关联性是
$orders->hasMany('SubOrders', [
'foreignKey' => 'order_id'
]);
这两个表在orders
和sub_orders
中分别有invoice_no
和sub_invoice
列。
我必须从包含相关sub_orders
的orders
表中查找记录,其中$trackingId
将匹配Orders.invoice_no
或SubOrders.sub_invoice
$findOrder = $this->Orders->find('all', [
'conditions' => [
'OR' => [
'Orders.invoice_no' => $trackingId,
'SubOrders.sub_invoice' => $trackingId
]
],
'contain' => [
'SubOrders'
]
]);
但这会产生错误
Column not found: 1054 Unknown column 'SubOrders.sub_invoice' in 'where clause'
发布于 2016-09-18 23:24:50
尝试像这样执行查询:
$findOrder = $this->Orders->find()
->where(['Orders.invoice_no' => $trackingId])
->contain(['SubOrders' => function ($q) use ($trackingId) {
return $q
->where(['SubOrders.sub_invoice' => $trackingId]);
}
]);
https://stackoverflow.com/questions/39558115
复制相似问题