【发布时间】:2020-02-24 09:43:21
【问题描述】:
关系:
public function category()
{
return $this->belongsTo(Category::class, 'category_id');
}
public function status()
{
return $this->belongsTo(Status::class, 'status_id');
}
查询:
return DB::table('asset_management_system.assets')
->join('asset_management_system.categories', 'asset_management_system.assets.category_id', '=', 'asset_management_system.categories.id')
->select('asset_management_system.categories.name', 'asset_management_system.categories.icon')
->selectRaw('count(asset_management_system.assets.category_id) as count,
sum(case when status_id = 1 then 1 else 0 end) AS assigned,
sum(case when status_id = 2 then 1 else 0 end) AS "stored",
sum(case when status_id = 3 then 1 else 0 end) AS missing,
sum(case when status_id = 4 then 1 else 0 end) AS broken')
->groupBy('asset_management_system.assets.category_id')
->get();
此查询当前返回每个类别的已分配、存储、丢失和损坏资产的计数。我怎样才能把它转换成雄辩的?
【问题讨论】:
-
你不能。如果你想要一个 Eloquent 对象,那么你必须使用 Eloquent 来实现这一点。如果您有任何 id 或唯一值,您可以基于此获取 Eloquent 对象。
标签: php sql laravel eloquent backend