Laravel take() возвращает пустую коллекцию для отношенийPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Laravel take() возвращает пустую коллекцию для отношений

Сообщение Anonymous »

Я пытаюсь получить 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»