2017-07-21 17 views
1

こんにちは私はテーブル名Itemsからユーザーアイテムを表示する必要があります。Laravel 5.4の関係

私は3つのモデルを持っています。

Userモデル:

public function userItem() 
{ 
    return $this->hasMany('App\UserItem', 'item_id'); 
} 

UserItemモデル:

public function user() 
{ 
    return $this->belongsTo('App\User', 'user_id'); 
} 

この関係を成功させるためにItemモデルへの書き込みは何。だから私はitems tableからアイテムを表示することができました。

私は今これを行う場合:

私がDBからuser_itemsテーブルから情報を取得。

私はこの@foreach(Auth::user()->userItem as $item)が、私はこれを取得行うとき:見つからない

コラム: で1054不明な列 'user_items.user_itemsを' 'where句' あなたは多くの-に出品されている

+0

あなたはusersテーブルとitemsテーブルを持っていて、在庫のようなものを作成したいと思いますか? – Astinox

+0

はい。私の 'user_items'テーブルに' user_id'と 'item_id'があります@Astinox – feknaz

+0

そして質問は? –

答えて

2

:-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) 
0

多くの場合、1対多の関係のためのメソッドを使用します。多くの関係に多くの場合は、お使いのモデルで、次のコードを使用します。

//ユーザモデル:

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#many-to-many

希望を。

私はあなたが2つの機種のユーザーと項目

と3つのテーブルを持っている

に多くの関係に多くを使いたいと思います

+0

こんにちは、私はこれを '@foreach(Auth :: user() - > userItem $ item)'私はこれを取得: '列が見つかりません:1054不明な列 'user_items.user_items' in 'where句' – feknaz