2017-08-17 69 views
0

我想知道如何從數據庫中刀片獲得的數據就像從用戶表:Laravel獲取記錄從數據庫中刀片鑑於

{{ Auth::user()->name }} 

我有表user_settings

我想獲得創紀錄從這張表中以登錄的用戶身份標識像這樣:

{{ UserSettings::user()->my_field }} 

我該怎麼做?

+1

嘗試{{ UserSettings :: user() - > my_field - > get()}} –

+0

return vie w(「你的看法」,[「userSettings」=> UserSettings :: user()]);現在在您的視圖中可以使用$ userSettigs – jgetner

+2

請勿從視圖層進行數據庫調用,從控制器傳遞數據 – Steve

回答

0

試試這個在您的刀片觀點

{{ \App\UserSettings::where('user_id',Auth::user()->id)->first()->my_field }} 

在默認情況下,模型文件是應用程序文件夾內。到數據庫表

這種直接訪問是不是雖然首選,您可以返回該從控制器的功能就像一個變量,

$field = \App\UserSettings::where('user_id',Auth::user()->id)->first()->my_field; 
return view('view_name',comapact('field')); 

,並在刀片使用像

{{$field}} 

另一個好辦法就是發表於Orkhan在另一個使用雄辯關係的答案。 希望你明白。

+0

是的,但在我的'UserSettings'模型中,我沒有'user()'函數,並且我得到了'調用未定義的方法Illuminate \ Database \ Query \ Builder :: user()' – lukassz

+0

您是否有user_id用戶設置表? –

+0

是的,我有這個字段 – lukassz

1

您需要檢索相關的認證用戶的UserSettings

UserSettings::where('user_id', Auth::id())->first()->my_field 

您可以定義一個名爲current()回,對於你的方法。

class UserSettings extends Model 
{ 
    public static function current() 
    { 
     return UserSettings::where('user_id', Auth::id())->first() 
    } 
} 

然後使用:

UserSettings::current() 

另一方面有會更好的用戶模型中使用one-to-one relationship

class User extends Model 
{ 
    public function settings() 
    { 
     return $this->hasOne('App\UserSettings'); 
    } 
} 

然後使用:

Auth::user()->settings->my_field