Laravel 5 拉雷维尔:唐';无法在页面加载时执行查询

Laravel 5 拉雷维尔:唐';无法在页面加载时执行查询,laravel-5,eloquent,Laravel 5,Eloquent,我正在为我公司的网页建立一个过滤系统,就像网店一样,这样你就可以很容易地访问一家公司。 我编写的以下查询正在页面加载时执行 我想要的是加载页面,并显示所有结果(未过滤)。选择一些筛选器并提交时,将显示与筛选器值匹配的结果 $companys = Company::wherehas('reviews', function($query) use($Rstars){ $query->where('stars', '=', $Rstars); })->

我正在为我公司的网页建立一个过滤系统,就像网店一样,这样你就可以很容易地访问一家公司。 我编写的以下查询正在页面加载时执行

我想要的是加载页面,并显示所有结果(未过滤)。选择一些筛选器并提交时,将显示与筛选器值匹配的结果

$companys = Company::wherehas('reviews', function($query) use($Rstars){
            $query->where('stars', '=', $Rstars);
        })->orderBy('created_at', $request->cdate)->paginate(15);
我想在提交时,用户会转到另一个带有过滤结果的页面,但我认为这不是一个很好的解决方案

我的另一个解决方案是
if
语句,但老实说,我认为这会在代码中造成混乱

也许这是件容易的事,但我不知道怎么做


谢谢

我想你可以用吗?比if语句更干净

$companys = Company::wherehas('reviews', function($query) use($Rstars){
        $query->where('stars', '=', isset($Rstars)?$Rstars:'default_value');
    })->orderBy('created_at', $request->cdate)->paginate(15);

我想你可以用吗?比if语句更干净

$companys = Company::wherehas('reviews', function($query) use($Rstars){
        $query->where('stars', '=', isset($Rstars)?$Rstars:'default_value');
    })->orderBy('created_at', $request->cdate)->paginate(15);