Laravel - 在没有Route Model绑定的情况下获得关系(没有参数)

时间:2018-04-27 05:51:14

标签: laravel routes url-routing

我有一个关系表,其中一个学生可能有很多科目。在主页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

控制器

Route::get('/{$id}', 'Controller@home')->name('home_page');

查看

public function home($id)

我来了

  

此集合实例上不存在Property [id]。

我知道我需要有路线

domain.com 并将功能更改为domain.com/1

但我想在{{1}}主页上显示这些内容,而不是{{1}}

我听说过明确的路由,但不太了解。

1 个答案:

答案 0 :(得分:0)

您正试图从此处的集合中获取属性id

->where(['student_id'=>$students->id])

该属性存在于模型的单个实例上,并且您试图在模型集合上调用它,因此它不存在。