【发布时间】:2016-09-18 13:24:07
【问题描述】:
我有两张桌子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'
【问题讨论】:
-
为 SubOrders 模型添加条件。
-
$trackingId将匹配来自Orders或来自SubOrders。不能使用and,因为两者的条件都不会满足
标签: cakephp model-associations cakephp-3.2