有人可以帮助我将查询转为口才吗?
模型订单:: 型号任务卡::
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
答案 0 :(得分:0)
似乎您的命名空间也有误,请尝试使用App\ModelName
而不是App\Models\ModelName
。并使用英语来命名功能/类:)
检查您的外键是否正确使用。如果您希望它开箱即用,orders
表应将client_id
作为外键,将id
作为主键,而clients
表必须具有主键id
。然后此解决方案将起作用:
public function order(){
return $this->hasOne('App\Order');
}
通过https://laravel.com/docs/5.8/eloquent-relationships
编辑:
为了更好地理解:)在create_orders_table
迁移中:
$table->bigIncrements('id');
$table->unsignedBigInteger('client_id');
$table->foreign('client_id')->references('id')->on('clients')->onDelete('cascade');
此外,我看不出您的客户只能下单的原因。我将在Client
模型中使用:
public function orders(){
return $this->hasMany('App\Order');
}
在Order
模型中:
public function client(){
return $this->belongsTo('App\Client');
}
这样,您的客户将能够拥有多个订单,而一个订单将只有一个分配的客户。