Anu*_*TBE 3 cakephp model-associations cakephp-3.2
我有两个表orders和sub_orders.他们的关系是
$orders->hasMany('SubOrders', [
'foreignKey' => 'order_id'
]);
Run Code Online (Sandbox Code Playgroud)
两个表都有invoice_no和sub_invoice列orders和sub_orders分别.
我必须从orders表中找到包含相关sub_orders位置或者$trackingId匹配的记录Orders.invoice_noSubOrders.sub_invoice
$findOrder = $this->Orders->find('all', [
'conditions' => [
'OR' => [
'Orders.invoice_no' => $trackingId,
'SubOrders.sub_invoice' => $trackingId
]
],
'contain' => [
'SubOrders'
]
]);
Run Code Online (Sandbox Code Playgroud)
但这会给出错误
Column not found: 1054 Unknown column 'SubOrders.sub_invoice' in 'where clause'
Run Code Online (Sandbox Code Playgroud)
尝试执行以下查询:
$findOrder = $this->Orders->find()
->where(['Orders.invoice_no' => $trackingId])
->contain(['SubOrders' => function ($q) use ($trackingId) {
return $q
->where(['SubOrders.sub_invoice' => $trackingId]);
}
]);
Run Code Online (Sandbox Code Playgroud)