Можно ли так выбирать данные?

Здравствуйте.
Часто вижу такую реализацию и задумался нормальна ли такая практика в Laravel.

Есть например переменная, полученная при помощи отношения
// Переменная в контролере
$favorites = $user->favorites; // Получает все записи, которые пользователь добавил в избранное

// метод отношения в модели User
public function favorites(){
        return $this->hasMany('\App\Models\Favorite');
}

// К-во избранных исполнителей в представлении
Исполнители ({{ $favorites->where('performer_id', '<>', null)->count() }})


Интересует именно то, нормально ли дополнительно в представлении вызывать метод where.
Спасибо!
  • Вопрос задан
  • 206 просмотров
Решения вопроса 1
Stasgar
@Stasgar
Обученная макака
Нет. Как минимум следует сделать count в контроллере. А еще лучше воспользоваться Scope ларавеля и писать нечто вроде:
public function scopeHasPefrormer($query)
{
    return $query->where('performer_id', '<>', null);
}

$performersCount = $user->favorites()->hasPerformer()->count();


View отвечает за отображение данных, а не за их поиск.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы