0

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

明示的なルーティングについて聞いたことがありますが、あまり知りません。

4

1 に答える 1