удалить локальную область видимости для другого красноречивого запроса - PullRequest
0 голосов
/ 12 мая 2018

У меня две модели. User и Task, которые имеют отношение ко многим.

В UserController:

public function show(User $user)
{
    return view('users.show', compact('user'));
}

Пользователи / show.blade.php:

Posts: @include('users.show.tasks', ['tasks'=>$user->tasks()]);

Пользователи / шоу / tasks.blade.php:

Active Tasks Count: {{$tasks->active()->count()}}

Запрос:

select count(*) as aggregate from `tasks` inner join `user_task` on `tasks`.`id` = `user_task`.`task_id` where `user_task`.`user_id` = '1' and `status` = '4';

Pending Posts Count: {{$posts->pending()->count()}}

Запрос:

select count(*) as aggregate from `tasks` inner join `user_task` on `tasks`.`id` = `user_task`.`task_id` where `user_task`.`user_id` = '1' and `status` = '4' and `status` = '3';

Это метод задач в пользовательской модели

public function tasks()
{
    return $this->belongsToMany(Task::class)->latest();
}

Области применения в модели задач

public function scopeActive($query)
{
    return $query->where('status', 4);
}

public function scopePending($query)
{
    return $query->where('status', 3);
}

Когда я проверяю запрос, используя laravel-debugbar, для второго запроса результат включает два идентификатора состояния вместо одного

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