Я пытаюсь использовать ресурсы и коллекцию Laravel для создания небольшого API.
Я хотел бы восстановить все сообщения категорий
Мои отношения на моем модель:
/*
|--------------------------------------------------------------------------
| RELATIONS
|--------------------------------------------------------------------------
*/
public function posts()
{
return $this->belongsToMany(Post::class, 'post_category');
}
Контроллер категорий:
public function index()
{
$categories = Category::all();
return (new CategoryCollection(CategoryResource::collection($categories)));
}
Моя категорияРесурс:
public function toArray($request)
{
return [
'id' => $this->id,
'name' => $this->name,
'slug' => $this->slug
];
}
Моя коллекция категорий
public function toArray($request)
{
return [
'data' => $this->collection,
'posts' => PostResource::collection($this->whenLoaded('posts')),
];
}
Я пытаюсь восстановить посты категории в первую очередь. Когда я выполняю следующую команду, я получаю сообщение об ошибке: Метод ... RelationsLoaded не существует
'posts' => PostResource::collection($this->whenLoaded('posts'))
Что я не понял?
Я также создал два файла PostCollection и PostResource (basi c, я не изменял их)
public function toArray($request)
{
return parent::toArray($request);
}