У меня есть таблицы отношений, где у одного ученика может быть много предметов. На домашней странице (/)
я хочу отобразить данные из отношения без каких-либо параметров маршрута.
Модель студента
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'));
}
View
@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
Я слышал о явной маршрутизации, но мало что знаю.