1 人の学生が多くの科目を持つ可能性がある関係テーブルがあります。ホームページで、ルートパラメータなし(/)でリレーションシップからのデータを表示したい。
学生モデル
class Student extends Model
{
protected $fillable = ['name', 'class', 'subjects'];
public function all_marks()
{
return $this->hasMany(Marks::class, 'student_id');
}
}
マーク モデル
class Marks extends Model
{
protected $fillable = ['name', 'student_id', 'subjects', 'marks'];
public function marks()
{
return $this->belongsTo(Student::class, 'student_id');
}
}
ルート
Route::get('/', 'Controller@home')->name('home_page');
コントローラ
public function home()
{
$students = Student::orderBy('created_at', 'asc')->get();
$minimum_marks = Student::with(['marks'])->where(['student_id'=>$students->id])->min('marks');
return view ('home', compact('students', 'minimum_marks'));
}
意見
@foreach($studens as $student)
Name: {{ $student->name}}
Min. marks: {{ $minimum_marks }}
@endforeach
ここで私は得た
プロパティ [id] は、このコレクション インスタンスに存在しません。
私はルートを持つ必要があることを知っています
Route::get('/{$id}', 'Controller@home')->name('home_page');機能を に変更しますpublic function home($id)。
domain.comしかし、これらをホームページではなくホームページに表示したいdomain.com/1
明示的なルーティングについて聞いたことがありますが、あまり知りません。