Задать вопрос
@2vtlk

В laravel жадная загрузка не совместима с кастомными коллекциями?

Если в модели сделать жадную загрузку
public function companies()
{  
    $this->load('contacts.companies')
    // ...
}

и при этом в модели Contact определен метод создания кастомной коллекции
public function newCollection(array $models = array())
{
        return new ContactCollection($models);
}

Получаем Exception, говорящий нам о том, что ожидается Collection, а приходит ContactCollection
Type error: Argument 2 passed to Illuminate\Database\Eloquent\Relations\BelongsToMany::match() must be an instance of Illuminate\Database\Eloquent\Collection, instance of App\Collections\ContactCollection given, called in /var/www/laravel/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php on line 678

Неужели жадная загрузка не совместима с кастомными коллекциями?
(laravel 5.2)
  • Вопрос задан
  • 667 просмотров
Подписаться 2 Оценить 2 комментария
Решение пользователя JhaoDa К ответам на вопрос (3)
JhaoDa
@JhaoDa
LaravelRUS Team
Наследуйте свою коллекцию от \Illuminate\Database\Eloquent\Collection.
Ответ написан
Комментировать