【发布时间】:2018-09-07 23:23:31
【问题描述】:
我有一个无法解决的情况,我有 3 个表/模型,其结构如下:
- 客户端型号:
Client->hasMany(Order::Class) - 订购型号:
Order->belongsTo(Client::Class)和Order->belongsTo(Status::Class) - 状态模型:
Status->hasMany(Order::class)
我希望能够将每个客户的订单按其状态分组,例如:3 个已取消 - 4 个已完成 - 5 个处理中
我试过了,但没有用:(
Client Model {
public function {
return $this->orders()->selectRaw('status_id, count(id) as total')->groupBy('status_id);
// orders() = is the relation a client hasmany orders
}
}
谁能帮忙谢谢
【问题讨论】:
-
“没用”是什么意思?
-
这意味着它没有像我预期的那样工作我仍然必须找到一个客户并使用这种方法来获取他的订单按状态分组,我知道我仍然缺少一些东西也有一个限制因为并非所有客户都有订单,所以我需要实现某种 $clients = Client::has('orders') 并返回一个空的项目数组
-
请添加一些示例数据和预期结果。
-
我有以下详细模型:class Client extends Model { public function orders() { return $this->hasMany(Order::class); } } 类订单扩展模型 { public function client() { return $this->belongsTo(Client::class); } } 类状态扩展模型 { public function orders() { return $this->hasMany(Order::class); } }
-
我有以下详细模型:class Client extends Model { public function orders() { return $this->hasMany(Order::class); } } 类订单扩展模型 { public function client() { return $this->belongsTo(Client::class); } } 类状态扩展模型 { public function orders() { return $this->hasMany(Order::class); } } 例如,我想在视图上有一个列表,例如:订单:3 已完成 - 2 正在处理 - 2 已取消