越来越多的查询laravel

时间:2018-10-04 03:45:05

标签: php laravel laravel-5 eloquent

我正在使用laravel发条来监视我的查询

我的控制器中有

public function index(){
    $errorFound = false;
    $error = ['error' => 'No Monitor Found'];
    $urls = $this->url->with('url_status','latestUrlStatus','users');
    if (request()->has('q')) {
        $keyword = '%'.request()->get('q').'%';
        $builder = $urls->where('description', 'like', $keyword);
        $builder->count() ? $urls = $builder : $errorFound = true;
    }
   return $errorFound === false ? UrlsResource::collection($urls->latest()->paginate(5)->appends(request()->query())) : $error;
}

在我的laravel发条上 查询翻倍

enter image description here

正常吗?如果有问题我该如何解决? TIA

1 个答案:

答案 0 :(得分:2)

没问题。所有这些查询都是预期的。

第一个查询(选择用户...)不是来自您显示的代码。它来自TrustProxies。

第二个查询(选择count())来自$builder->count()

其余所有查询均来自$urls->latest()->paginate(5)paginate()要做的第一件事是运行count()查询(第三查询)以获取记录总数。然后继续调用真正的查询。

在这种情况下,第四个查询是您所有URL的主要查询,第五个查询是渴望加载您的url_status关系的查询,第六个查询是渴望加载您的{{1} }关系,第七个查询是渴望加载您的latestUrlStatus关系的查询。