Mysql 将原始SQL查询转换为Laravel Eloquent左外部联接
谁能帮我把这个问题转化成雄辩的问题 订单型号:: 型号任务卡::Mysql 将原始SQL查询转换为Laravel Eloquent左外部联接,mysql,laravel,eloquent,Mysql,Laravel,Eloquent,谁能帮我把这个问题转化成雄辩的问题 订单型号:: 型号任务卡:: select ifnull(data, o.created_at) as dataZlecenia,o.id, o.nazwa from orders o left outer join (select max(created_at) as data,order_id from task_cards group by order_id) as a on a.order_id=o.id order b
select
ifnull(data, o.created_at) as dataZlecenia,o.id, o.nazwa
from
orders o
left outer join
(select max(created_at) as data,order_id from task_cards
group by order_id) as a
on a.order_id=o.id
order by dataZlecenia desc
似乎名称空间也有问题,请尝试使用
App\ModelName
而不是App\Models\ModelName
。并使用英语命名函数/类:)
检查外键是否正确使用。如果您想让它开箱即用,orders
表应该将client\u id
作为外键,将id
作为主键,而clients
表必须具有主键id
。然后,此解决方案将起作用:
public function order(){
return $this->hasOne('App\Order');
}
通过
编辑:
为了更好地理解:)在创建订单\u表中
迁移:
$table->bigIncrements('id');
$table->unsignedBigInteger('client_id');
$table->foreign('client_id')->references('id')->on('clients')->onDelete('cascade');
此外,我看不出为什么你的客户只能订购一份。我会在客户机中使用模型:
public function orders(){
return $this->hasMany('App\Order');
}
在订单中
型号:
public function client(){
return $this->belongsTo('App\Client');
}
这样,您的客户将能够有多个订单,而一个订单将只有一个指定的客户。嘿,到目前为止您尝试过什么吗?请阅读文档。我试过了。问题是我必须把它作为一个模型,而不是一个数组。在我使用的模型中,函数hasmany/hasOne将您的关系添加到问题中,它可以帮助我们构建查询。公共函数klient(){return$this->hasOne('App\models\Customer','id','klientID')->withTrashed();}您真的需要ifnull语句吗?