【发布时间】:2019-03-02 06:11:51
【问题描述】:
我使用的是 Laravel 5.6,我有一个标准查询
Order::where('dict_statuses_id', 1)
->leftJoin('dict_statuses', 'dict_statuses_id', '=', 'dict_statuses.id')
->get();
所以我有详细的订单列表,其中状态 = 1(新)在加入表后我看到状态为新或完成。有什么方法可以使用 whereHas 更改此查询?
我试过了
Order::whereHas('status', function($q){
$q->where('dict_statuses_id', 1);
})->get();
但没有结果,在模型订单中我有
public function status()
{
return $this->hasMany('App\DictStatuses');
}
[更新]
我有一个错误:
Column not found: 1054 Unknown column 'dict_statuses.orders_id'
in 'where clause' (SQL: select * from `orders` where exists
(select * from `dict_statuses` where `orders`.`id` = `dict_statuses`.`orders_id` and `dict_statuses_id` = 1)
and `orders`.`deleted_at` is null)
在我的表中,我有表 Orders 字段:dict_statuses_id 和表 dict_statuses 字段:id、public_name
为什么错误是关于 dict_statuses.orders_id
【问题讨论】:
标签: php eloquent laravel-5.6