【发布时间】:2020-01-29 22:14:35
【问题描述】:
我有这样的代码:
$totalCount = User::sum('count_fortress');
$lastVisit = User::orderBy('last_visit_fortress', 'DESC')->first('last_visit_fortress');
$topFiveUsers = User::whereNotNull(['count_fortress', 'last_visit_fortress'])
->orderBy('count_fortress', 'DESC')
->orderBy('last_visit_fortress', 'DESC')
->get(['id', 'count_fortress', 'last_visit_fortress'])
->take(5);
return response()->json([
"fortress" => [
"total_count" => $totalCount,
"last_visited" => $lastVisit->last_visit_fortress,
"users" => $topFiveUsers
]
]);
$totalCount = User::sum('count_museum');
$lastVisit = User::orderBy('last_visit_museum', 'DESC')->first('last_visit_museum');
$topFiveUsers = User::whereNotNull(['count_museum', 'last_visit_museum'])
->orderBy('count_museum', 'DESC')
->orderBy('last_visit_museum', 'DESC')
->get(['id', 'count_museum', 'last_visit_museum'])
->take(5);
return response()->json([
"museum" => [
"total_count" => $totalCount,
"last_visited" => $lastVisit->last_visit_museum,
"users" => $topFiveUsers
]
]);
有没有一种可能的方法可以用一种方法或类似的方法将逻辑放在存储库或服务中而不是控制器中?
【问题讨论】:
-
接受作为额外的路线参数博物馆或堡垒,然后将参数连接到使用它们的每个实例的末尾
-
你能给我看看这个例子吗?
-
您应该查看本地查询范围以使您的查询可重用:laravel.com/docs/5.5/eloquent#local-scopes
-
@LobsterBaz 你能给我解释一下吗?
标签: php mysql laravel eloquent orm