Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Вывожу все посты
Post::all();
А как вывести только посты хотя бы с одним комментарием?
Не в сети
В таблице posts у тебя должно быть поле, в котором указано количество комментариев для каждой записи. По умолчанию значение поля 0. При написании комментария значение увеличивается на 1. Соответственно, пишешь
$comments = Post::where('comments', '>', '0')->get();
Это один вариант. Второй вариант - получать данные из таблицы comments. В ней долджно быть связанное поле, например, post_id, значение которого равно id записи в таблице posts. Но, как мне кажется, первый вариант предпочтительнее и проще.
Не в сети
не, варианты так себе
Великий могучий sql язык и Laravel способны на большее, я в этом уверен!
Нужны знающие люди в этом вопросе! У меня просто минимальные знания по sql
Не в сети
Что то на подобии этого, только работа через модель!
DB::table('users')
->whereExists(function ($query) {
$query->select(DB::raw(1))
->from('orders')
->whereRaw('orders.user_id = users.id');
})
->get();
Не в сети
Нашёл ответ! https://laravel.com/docs/5.7/eloquent-r … ted-models
// Retrieve all posts that have at least one comment...
$posts = App\Post::has('comments')->get();
Не в сети