Answer the question
In order to leave comments, you need to log in
How to display the latest updates?
Hello.
You need to display the latest articles from the table as follows:
[ Звезды ] [ Путешествия ] [ Девушки ]
5 записей 5 записей 5 записей
Answer the question
In order to leave comments, you need to log in
query-buldera requests:
//достаем категории для главной
$categories = Category::where('display_home', 1)->get('id', 'name', 'slug');
//сюда будем схоронять посты, которые не должны повторяться
$posts_exclude = collection();
//для каждой категории
foreach ($categories as $category) {
$posts_array[$category->title] = Post:: //ищем посты,
whereHas('categories', function ($q) use ($category) { //у которых категория
$q->where('id', $category->id); // одна из найденных для главной,
})
->whereNotIn('id', $posts_exclude->pluck('id')) // и постов нет в исключаемых
->get('id', 'title', 'slug'); // только с нужными полями
$posts_exclude->merge($posts_array[$category->id]); // добавили найденные посты в коллекцию с исключаемыми
}
<ul>
foreach ($posts_array as $category => $posts) {
<li>
$category //ключ основного массива - название категории
<ul>
foreach ($posts as $post) { //значение элементов основного массива - набор постов из категории
<li>$post->title</li>
}
</ul>
</li>
}
</ul>
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question