Laravel 5.4 красноречивый где родитель

Итак, у меня есть две модели настройки, Пользователь и Пост. Сообщение имеет belongsTo настройка пользователя и пользователь имеет hasMany настройка для сообщений.

Получая все мои сообщения, я хочу убедиться, что пользователь не забанен. Banned — это int в базе данных в столбце с именем ban и я хочу убедиться, что он равен 0. Сначала я просматривал сообщения, проверял, не заблокирован ли пользователь, а затем помещал его в массив и передавал этот массив представлению, которое работало нормально. Однако теперь я хочу включить paginate, и он не работает, потому что я не передаю красноречивый объект.

Вот мой красноречивый прямо сейчас:

$posts = Post::where('status', '>', 1)->orderBy('published_date', 'desc')->paginate(10);

0

Решение

использование whereHas()

$posts = Post::where('status', '>', 1)->whereHas('user', function($q) {
$q->where('ban', 0);
})->orderBy('published_date', 'desc')->paginate(10);

Я полагаю, у вас есть user отношение к User модель из Post модель.

3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector