我正在尝试使用 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')), ];}我尝试先恢复某个类别的帖子。当我执行以下命令时,出现错误:Method ... relationLoaded 不存在'posts' => PostResource::collection($this->whenLoaded('posts'))我不明白什么?我还创建了两个 PostCollection 和 PostResource 文件(基本,我没有修改它们)public function toArray($request){ return parent::toArray($request);}
2 回答
慕仙森
TA贡献1827条经验 获得超7个赞
public function index()
{
$categories = Category::all();
return (CategoryResource::collection($categories));
}
这可能有帮助,试试这个
如果你想使用帖子资源,你需要在 CategoryResource 中创建帖子资源
'posts'=>PostResource::collection($this->posts)
FFIVE
TA贡献1797条经验 获得超6个赞
不能使用集合中的资源。用这个
public function index()
{
$categories = Category::all();
return (new CategoryCollection($categories));
}
- 2 回答
- 0 关注
- 89 浏览
添加回答
举报
0/150
提交
取消