我正在为我公司的网页构建过滤系统,就像网上商店一样,这样您就可以轻松地找到公司。 我写的下面的查询是在页面加载时执行的。
我想要的是加载页面并显示所有结果(未过滤)。当您选择一些过滤器并提交时,将显示与过滤器值匹配的结果。
$companys = Company::wherehas('reviews', function($query) use($Rstars){
$query->where('stars', '=', $Rstars);
})->orderBy('created_at', $request->cdate)->paginate(15);
我正在考虑提交用户使用过滤结果转到另一个页面,但我认为这不是一个很好的解决方法。
我的另一个解决方案是if
语句,但老实说,我认为这会在代码中造成混乱。
也许这很容易,但我找不到。
谢谢!
答案 0 :(得分:0)
我认为你可以使用?比if语句更清洁。
$companys = Company::wherehas('reviews', function($query) use($Rstars){
$query->where('stars', '=', isset($Rstars)?$Rstars:'default_value');
})->orderBy('created_at', $request->cdate)->paginate(15);