我有一个关系表,其中一个学生可能有很多科目。在主页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}}
我听说过明确的路由,但不太了解。
答案 0 :(得分:0)
您正试图从此处的集合中获取属性id
->where(['student_id'=>$students->id])
该属性存在于模型的单个实例上,并且您试图在模型集合上调用它,因此它不存在。