Php 拉威尔模型
我有3张桌子,比如:Php 拉威尔模型,php,laravel,relation,laravel-5.6,Php,Laravel,Relation,Laravel 5.6,我有3张桌子,比如: | user_table | | user_image_table| | images_table | ---------------------------------------------------------- id_user | | id_user | | id_image | | | id_image | | | 问
| user_table | | user_image_table| | images_table |
----------------------------------------------------------
id_user | | id_user | | id_image |
| | id_image | | |
问题是,若用户已登录,我无法获取属于该用户的图像。我试过:
hasManyThrough(Image::class, UserImage::class, 'id_user', 'id_image')
在
用户
类中。但这并没有起到任何作用。有什么办法吗 您需要在图像
和用户
模型中使用归属关系
图像模型:
public function users(){
return $this->belongsToMany(User::class, 'user_image_table', 'id_image', 'id_user');
}
用户模型:
public function images(){
return $this->belongsToMany(Image::class, 'user_image_table', 'id_user', 'id_image');
}
然后通过Auth::user()->images
或request()->user()->images
访问登录用户的图像。您需要在图像
和用户
模型中使用belongsToMany
关系
图像模型:
public function users(){
return $this->belongsToMany(User::class, 'user_image_table', 'id_image', 'id_user');
}
用户模型:
public function images(){
return $this->belongsToMany(Image::class, 'user_image_table', 'id_user', 'id_image');
}
然后通过Auth::user()->images
或request()->user()->images
nop访问登录用户的图像,没有帮助。它返回空值。即使我写错了user\u image\u table
它显示为空,你能给我看一下你的控制器代码吗?并检查已编辑的版本是否已修复。使用了你的代码。刚刚将用户更改为:$this->belongstomy(Image::class,'user\u has\u Image','id\u user','id\u Image')我不明白为什么我们在图像模型上使用用户。这是用来通过图像访问用户的吗?是的,关系是以两种方式定义的,因此您可以从任何地方查询它们。就像在这种情况下,如果你查询所有用户,那么你也可以得到他们的图像,如果你查询所有图像,那么你也可以得到他们各自的用户。不,没有帮助。它返回空值。即使我写错了user\u image\u table
它显示为空,你能给我看一下你的控制器代码吗?并检查已编辑的版本是否已修复。使用了你的代码。刚刚将用户更改为:$this->belongstomy(Image::class,'user\u has\u Image','id\u user','id\u Image')我不明白为什么我们在图像模型上使用用户。这是用来通过图像访问用户的吗?是的,关系是以两种方式定义的,因此您可以从任何地方查询它们。与本例类似,如果查询所有用户,则也可以获取他们的图像,如果查询所有图像,则也可以获取他们各自的用户。