2017-03-24 15 views
0

私はlaravel5.4で働いています。私はチケットユーザー会社という4つのテーブルを作成しました。ここでは、私はユーザーidチケットテーブルを格納しています。 会社idユーザーテーブル。複数のテーブルのためのEloquent relationship

チケットのユーザー名をユーザーのの会社名で表示したいとします。

ここでは、以下のような関係を作成しています。

チケットモデル:

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

ここチケットを作成者であるrequester_id。

ユーザーモデル:

public function company() 
{ 
    return $this->belongsTo('App\Models\Admin\Company'); 
} 

会社モデル:ここで

public function Users() 
{ 
    return $this->hasOne('App\Users'); 
} 

、私は以下のように見えるのユーザー情報を取得するクエリを書かれています。

Ticket::with('requesters')->orderBy('subject','asc')->paginate(10); 

さて、私は会社情報やを取得したいがをREQUEST_IDだから私はチケットとユーザーと一緒に会社の情報を取得するために、このクエリで何をすべきかの変更を持っている必要がありますか?

答えて

2

あなたはあなたのような単一withでそれらのすべてを置くことができる熱心な負荷複数の関係を制限する場合をこの:

Ticket::with('requesters','requesters.company')->orderBy('subject','asc')->paginate(10); 

しかし、あなたは、あなたが短い表記を使用することができ、ネストされた関係をロードする場合 - それは、ここで使用するのに十分ですので、あなたは、親の関係を省略することができます。

Ticket::with('requesters.company')->orderBy('subject','asc')->paginate(10); 
0

これを試してみてください、それがこのような場合のために働く必要があります。私はこのことができます願ってい

Ticket::with('requesters') 
     ->with('requesters.company') 
     ->orderBy('subject','asc')->paginate(10); 

...

関連する問題