[英]How to streamline Laravel ORM
对不起,是这么愚蠢的问题..
我使用Controller,有很多ORM,我想简化这段代码。
我的控制器
public function news(Request $request)
{
$history = Recruitments_status::where('recruitments_status.status',1)->get();
$history_a = Recruitments_status::where('recruitments_status.status',2)->get();
$history_b = Recruitments_status::where('recruitments_status.status',3)->get();
$history_c = Recruitments_status::where('recruitments_status.status',4)->get();
$history_d = Recruitments_status::where('recruitments_status.status',5)->get();
$history_e = Recruitments_status::where('recruitments_status.status',6)->get();
return view('pl_sidebar/news',[
'history' => $history,
'history_a' => $history_a,
'history_b' => $history_b,
'history_c' => $history_c,
'history_d' => $history_d,
'history_e' => $history_e
]);
}
如何简化这个ORM代码?
使用whereIN
->whereIn('id', [1, 2, 3])->get();
所以,
$history = Recruitments_status::whereIn('recruitments_status.status',[1,2,3,4,5,6])->get();
您的代码将生成多个查询,这是不好的做法。 你可以得到一个集合:
public function news(Request $request)
{
return view('pl_sidebar/news', [
'history' => Recruitments_status::whereIn('status', [1, 2, 3, 4, 5, 6])
]);
}
然后在Blade模板中使用此集合:
@foreach ($history->where('status', 1) as $single)
{{ $single->status }}
{{ $single->id }}
@endforeach
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.