[英]Retrieving data from pivot table in Laravel only using one foreach loop
[英]Retrieving a single colum from a pivot table - Laravel 5
我正在使用数据透视表genre_user将用户与genre关联。 该表包含以下字段
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循环。
我认为可以通过lists()
方法来帮助您实现此行为。 尝试类似
$user_genres = auth()->user()->genres()->lists('name','id');
如果您使用的是Forms&HTML包,则可以
{!! Form::select('genres',$user_genres,null) !!}
这是您的下拉菜单
此处有更多信息(向下滚动到“检索列值列表”)
user
应具有一种genre
。
因此,您的模型应包含以下关系:
User.php
public function genre() {
return $this->hasOne('App\Genre');
}
Genre.php
public function artists() {
return $this->belongsToMany('App\User');
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.