我有一个问题,急于加载2关系在1表在laravel 9。我有表称为照片有关系的用户和照片_类别。所以我想实现的是加载用户和类别在同一时间。我也已经声明了关系的模型。我已经尝试是像代码如下
$photos = Photo::with('user','photoCategory')->where('id',$request->id)->first(); //at show method
$photos = new PhotoCollection(Photo::with('user','photoCategories')->OrderByDesc('id')->paginate(10));//at index method
我在Photo Model的关系
public function user(){
return $this->BelongsTo(User::class);
}
public function photoCategory(){
return $this->HasMany(FotoCategory::class);
}
我在用户模型中的关系
public function photo(){
return $this->HasMany(PhotoCategory::class);
}
我在用户照片类别模型的关系
public function photo(){
return $this->BelongsTo(Photo::class);
}
请帮我解决问题,先谢谢你
3条答案
按热度按时间siotufzp1#
你的照片模型似乎有问题。photoCategory方法应为BelongsTo关系:
在用户模型中:
以下是最终输出关系数据:
希望这对你有帮助。
gcuhipw92#
看起来代码中有一处打字错误,在急于加载photoCategory关系时,您在with方法中调用了photoCategories而不是photoCategory。
尝试像这样更新代码:
此外,确保您的PhotoCategory模型与Photo模型之间存在belongsTo关系,如下所示:
0ejtzxu13#
照片表有一个名为category_id的外键,对吗?如果有,在照片模型上:
然后,你可以收集照片
或照片示例