Laravel:不要在页面加载时执行查询

时间:2016-02-24 08:13:39

标签: laravel-5 eloquent

我正在为我公司的网页构建过滤系统,就像网上商店一样,这样您就可以轻松地找到公司。 我写的下面的查询是在页面加载时执行的。

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

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

我正在考虑提交用户使用过滤结果转到另一个页面,但我认为这不是一个很好的解决方法。

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

也许这很容易,但我找不到。

谢谢!

1 个答案:

答案 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);