gleber1
@gleber1

Почему не работает выборка в laravel?

Сущность News имеет поле source_id (принадлежит компаниям)
В Company
public function news()
    {
        return $this->hasMany('App\News', 'source_id', 'id');
    }

В итоге
Argument 2 passed to Illuminate\Database\Eloquent\Relations\HasMany::match() must be an instance of Illuminate\Database\Eloquent\Collection, instance of App\CustomCollection\SupportsCollection given, called in
В чем ошибка?
  • Вопрос задан
  • 210 просмотров
Решения вопроса 1
Denormalization
@Denormalization
Что такое App\CustomCollection\SupportsCollection?
Прямым текстом же написанно что передается неправильный тип коллекции.

Что за Что такое App\CustomCollection\SupportsCollection и от куда он взялся?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@newpy
web-dev
Во первых скорей всего перепутали порядок передаваемых параметров:
первым идет foreign_key, вторым local_key.
Во-вторых могли перепутать еще и сущности, судя по вашим словам.

class News
public function company()
{
     return $this->hasMany('App\Company', 'id', 'source_id');
}

class Company
public function news()
{
     return $this->belongsTo('App\News');
}


В-третьих: стоило бы для понимания описать отношения между вашими сущностями. Потому как ваши слова только запутывают. Опишите сущности Company и News. Например: многим/одной Компании может принадлежать много Новостей, множество Новостей могут принадлежать одной/многим Компаниям. Так как собственно от этого зависит как правильно описать отношения (relations) в моделях. Уверен если на бумажке черканёте себе таким простым текстом, то и вам станет понятнее что и где прописывать, и как правильно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы