我正在使用数据透视表 genre_user 将用户与流派相关联。 表包含以下字段
id
user_id
genre_id
以下是模型定义
user.php的
public function genres() {
return $this->belongsToMany('App\Genre');
}
Genre.php
public function artists() {
return $this->belongsToMany('App\User');
}
当我使用以下代码时,我将结果作为集合
$user = auth()->user();
dd($user->genres);
我想在类型的下拉字段中显示所选类型。是否可以从数据透视表中仅将当前用户 genre_id 作为一个数组,而不使用 foreach 循环。
答案 0 :(得分:1)
我认为有助于您实现此行为的是lists()
方法。
尝试像
$user_genres = auth()->user()->genres()->lists('name','id');
如果您使用的是Forms&你可以做的HTML包
{!! Form::select('genres',$user_genres,null) !!}
这是你的下拉列表
更多信息here(向下滚动到“检索列值列表”)
答案 1 :(得分:0)
user
应该有一个genre
。
因此,您的模型应包含以下关系:
user.php的
public function genre() {
return $this->hasOne('App\Genre');
}
Genre.php
public function artists() {
return $this->belongsToMany('App\User');
}