[英]Laravel 5.4 relationship
嗨,我需要從表名稱Items
顯示用戶項目。
我有3個模型。
用戶模型:
public function userItem()
{
return $this->hasMany('App\UserItem', 'item_id');
}
UserItem模型:
public function user()
{
return $this->belongsTo('App\User', 'user_id');
}
怎樣寫給Item
Model才能使這種關系成功。 所以我可以顯示items table
。
如果我現在這樣做:
我從數據庫的user_items
表中獲取信息。
當我這樣做@foreach(Auth::user()->userItem as $item)
我得到了:
找不到列:1054“ where子句”中的未知列“ user_items.user_items”
我想你想使用多對多關系
您有2個模型用戶和項目
和3個表:-users -items -user_items
用戶模型應如下所示:
public function userItem()
{
return $this->belongsToMany('App\Item','user_items','user_id','item_id');
}
和項目模型:
public function user()
{
return $this->belongsToMany('App\User','user_items','item_id','user_id');
}
並且您需要一個名為user_items
的表
而且您不需要定義userItem模型,就可以刪除該模型中的關系
在刀片中使用以下代碼:
@foreach(Auth::user()->userItem as $item)
您表現出多對多的關系,但仍在使用一對多關系的方法。 對於多對多關系,請在模型中使用以下代碼:
//用戶模型:
public function userItem()
{
return $this->hasMany('App\UserItem', 'user_items', 'user_id', 'item_id');
}
// userItem模型:
public function user()
{
return $this->hasMany('App\User', 'user_items', 'item_id', 'user_id');
}
對於多對多關系,兩個模型都需要hasMany方法。
有關hasMany方法的參數的信息以及有關多對多關系的其他信息,請閱讀有關多對多關系的文檔: https : //laravel.com/docs/5.4/eloquent-relationships#許多一對多
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.