私のアプリケーションでは、ユーザーテーブルとフォームテーブルの2つのテーブルがあります。 ユーザーテーブルは、IDを持つ一般的なユーザー情報です。フォームテーブルには、ユーザーが完了する必要があるフィールドの一覧があります。 Eager Loading Laravel 5多対多の関係
- ID
- form_id(>形FK):多対多の関係がそうように私ユーザーフォームピボットテーブルで追跡されていますFK - >ユーザー)
- は、ユーザーが彼/彼女が完了する必要があり、auのことを他のユーザーにフォームを送信することが
を完了しましたserは、多くのフォームを送受信できます。したがって、フォームには多くのユーザーが関連付けられている場合があります。問題は、フォームを開き、送信者と受信者の両方のユーザー情報を含む関係(2つの外部キーがあるため)を熱心に読み込もうとするときです。私はどちらか一方しかできないようです。
class Form extends Model
{
public function senders() {
return $this->belongsToMany('App\User', 'user_forms', 'form_id', 'sender_id')->withPivot('receiver_id', 'completed');
}
public function receivers() {
return $this->belongsToMany('App\User', 'user_forms', 'form_id', 'receiver_id')->withPivot('sender_id', 'completed');
}
}
FormController
Form.php:私のフォームモデルはそうのように見えます
public function show($id)
{
$form = Form::with('receivers')->findOrFail($id);
return view('form.show', ['form' => $form]);
}
view.blade.php
@foreach($form->receivers as $receiver)
<tr>
<td>{{ $receiver->full_name }} </td>
<td>{{ $receiver->pivot->sender_id }} </td>
</tr>
@endforeach
私はので、私は私の見解では、このような何かを行うことができ、それはをsender_idをに起因ユーザーをロードする方法を取得することができます。事前に
{{ $receiver->pivot->sender->full_name }}
感謝を。