2017-05-16 9 views
0

私の学生モデルどのように私は2つのモデルとの関係を作成し、コントローラを介してビューにモデル情報を渡すことができますか?

/** 
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo 
*/ 
public function fathers() 
{ 
    return $this->belongsTo('App\Models\Father'); 
} 

マイStudentController

/** 
* Display the specified resource. 
* 
* @param ManageStudentRequest $request 
* @param int $id 
* @return \Illuminate\Http\Response 
*/ 
public function show(ManageStudentRequest $request, $id) 
{ 
    $student = Student::with('fathers')->find($id); 

    return view('students.show')->withStudent($student); 
} 

そして、私のブレードビュー

<tr> 
    <th>NOMBRE</th> 
    <td>{{ $student->father->first_name }} {{ $student->father->last_name }}</td> 
</tr> 

事は、私はこの間違いを得ることである:

Trying to get property of non-object (View: C:\laragon\www\App\resources\views\students\partials\show\show-overview.blade.php) (View: C:\laragon\www\App\resources\views\students\partials\show\show-overview.blade.php) 

私は助けが切望されています。何かが役に立つ、tyvmです。

あなたはとてもセットアップあなたの構造をそれはあなたが望むLogicの場合は、学生と父親の間に多くの関係に多くを持っている、はず

答えて

0

オン:

public function fathers() 
{ 
    return $this->belongsToMany('App\Models\Father'); 

    //Also define the inverse relationship on the Father model. 
} 

は今、あなたは、その後のことをやったと仮定するとただfirst()を追加$student = Student::with('fathers')->find($id);このクエリでは、それは次のようになります。

$student = Student::with('fathers')->find($id)->first();

あなたの意見では、次のようにアクセスできます:

<td>{{ $student->father->first_name }} {{ $student->father->last_name }}</td>

関連する問題