2017-11-20 17 views
0

私のデータベースには3つのテーブルがあります。 3つのテーブルデータをすべて1ページに表示したいLaravel - 複数のテーブルのデータを1ページに表示

Student.php

public function hobbies() { 
    return $this->hasMany(Student::class); 
} 

Hobbie.php

public function student() 
{ 
    return $this->belongsTo(Student::class); 
} 

Controller.php

$students->name= request('name'); 
    $students->address = request('address'); 
    if($students->save()) 

for ($i=0; $i < count(request('hob')); ++$i) 
     { 
     $hobbies = new Hobby; 
     $hobbies->name= request('hob')[$i]; 
     $students->hobbies()->save($hobbies); 
     } 

View.blade.php $ students-> hobbies() - >ホブ;

ただし、趣味は表示されません。適切な解決策は何ですか?

+0

'request( 'name')'は何ですか? – C2486

+0

どのバージョンのlaravelを使用していますか? –

+0

趣味の学生データが必要な場合など、詳しく説明してください。 –

答えて

0

コントローラコード全体が参考になります。

ビュー$students->hobbies()->hob;では、$students->hobbies()hobにアクセスしています。 Collection $students->hobbies()の要素のhobプロパティにアクセスしたいので、おそらく​​にアクセスするか、foreachを使用してコレクションをループします。

ビュー内の$students->hobbies()にアクセスすると実際にデータベースが照会されるので、コントローラの変数$hobbiesを設定してビューに渡し、変数を調べるほうがよいでしょう。

@foreach ($hobbies as $hobby) {{ $hobby->hob }}<br/> @endforeach

関連する問題