将两个模型传递给控制器第二个模型为空



我试图将两个模型传递给控制器,但第二个模型为空。哪里出了问题<<strong>叶片视图/strong>

{!! link_to_route('schools.school-classes.edit', 'Edit', array($school->id, $class->id), array('class'=>'label label-info')) !!}

web.php代码

Route::bind('school-classes', function ($value, $route){
return AppSchoolClass::whereId($value)->first();
}); 
Route::bind('schools', function ($value, $route){
return AppSchool::whereId($value)->first();
});
Route::resource('schools', 'SchoolsController');
Route::resource('schools.school-classes', 'SchoolClassesController');

当我运行PHP artisan route:list时,我得到

 GET|HEAD  | schools/{school}/school-classes/{school_class}/edit | schools.school-classes.edit    | AppHttpControllersSchoolClassesController@edit       | web

in my controller

public function edit(School $school, SchoolClass $class){
    var_dump($class);
}

$class为空。我哪里做错了?

生成的路由包含下划线(_)而不是破折号(-)。您需要相应地设置绑定:

// use 'school_class' instead of 'school_classes'
Route::bind('school_class', function ($value, $route){
    return AppSchoolClass::whereId($value)->first();
});

最新更新