механизм подсчета в laravel - PullRequest
0 голосов
/ 25 мая 2019

предположим, у нас есть этот код

результат функции count () относится к каждому запросу или после того, как запросы будут выполнены, тогда функция подсчета вернет результат?

$model=Model::query()

foreach ($Entities as $entity) {
               $model->orWhereBetween("id",$entity->first_id,$entity->last_id])
         }
$model->count()

Ответы [ 2 ]

0 голосов
/ 26 мая 2019

Салам,
Ответ: Зависит от того, когда вы вызываете метод подсчета!
В вашем коде:

$model=Model::query();
$model2 = $model;

foreach ($Entities as $entity) {
//you should save your where between in self $model varriable
    $model = $model->orWhereBetween("id",$entity->first_id,$entity->last_id])
}

//$model - object of query builder
$model->count();//After operations and filtering 
$model2->count();//Before operations and filtering (  It is equal or more than $model->count()  )

Надеюсь, это поможет вам:)

0 голосов
/ 26 мая 2019
$model=Model::query()

    foreach ($Entities as $entity) {
        $model->orWhereBetween("id",$entity->first_id,$entity->last_id])
    }

//$model - object of query builder
$model->count();

Будет сгенерирован один запрос и рассчитан на стороне БД: SELECT COUNT(*) FROM table WHERE id BETWEEN ? AND ? OR id BETWEEN ? AND ? OR id BETWEEN ? AND ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...