【发布时间】:2018-03-25 21:39:44
【问题描述】:
我有两对一对多:
状态 > 订单
状态>门票
订单
id, status_id
1, 5
门票
id, status_id
1, 2
状态
id, table, language_id, key, name
1, 'orders', 1, 1, 'Pending'
2, 'orders', 1, 2, 'Processing'
3, 'orders', 1, 3, 'Shipped'
4, 'orders', 1, 4, 'Canceled'
5, 'orders', 1, 5, 'Complete'
6, 'tickets', 1, 1, 'unanswered'
7, 'tickets', 1, 2, 'answered'
8, 'tickets', 1, 3, 'closed'
//unique(['table', 'language_id', 'key'])
按订单模式
public function status()
{
//ok
return $this->belongsTo('App\Models\Status', 'status_id', 'key')->where('table', 'orders')->where('language_id', 1);
//not ok
return $this->belongsTo('App\Models\Status', 'status_id', 'key')->wherePivot('table', '=', 'orders')->wherePivot('language_id', '=', 1);
}
控制器
$order = \App\Models\Order::find(1);
dd($order->status);
错误消息:找不到列:1054 'where 子句'中的未知列'pivot'(SQL:select * from statuses where statuses.key = 5 and pivot = table and pivot = language_id 限制 1)
如果 where() 没问题,为什么还有 wherePivot()?
如何正确使用 wherePivot?
【问题讨论】: