Я пытаюсь получить 4 категории всего с 4 статьями в laravel, используя этот код:
$categoryArticles = Category::whereHas('articles')->with(['articles' => function($q){
$q->select('id', 'title')->take(4);
}])->take(4)->get();
но для некоторых категорий он возвращает пустое отношение артиклей, и когда я удаляю из него take(4), код будет работать правильно:
$categoryArticles = Category::whereHas('articles')->with(['articles' => function($q){
$q->select('id', 'title');
}])->take(4)->get();
но мне нужно взять всего по 4 статьи для каждой категории.
в чем проблема?
Модель Article.php:
р>
public function categories() {
return $this->belongsToMany(Category::class, 'article_category');
}
Модель Category.php:
public function articles() {
return $this->belongsToMany(Article::class, 'article_category');
}
Таблицаarticle_category:
Schema::create('article_category', function (Blueprint $table) {
$table->unsignedBigInteger('article_id');
$table->unsignedBigInteger('category_id');
$table->foreign('article_id')->references('id')->on('articles')->onDelete('cascade');
$table->foreign('category_id')->references('id')->on('categories')->onDelete('cascade');
});
Подробнее здесь: https://stackoverflow.com/questions/787 ... lationship
Laravel take() возвращает пустую коллекцию для отношений ⇐ Php
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение