簡體   English   中英

從數據透視表中檢索單個列-Laravel 5

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM