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

Passing two models to controller second model is null

我正在尝试将两个模型传递给控制器​​,但第二个模型为空。哪里可能出错 blade 查看

{!! 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 \App\SchoolClass::whereId($value)->first();
}); 
Route::bind('schools', function ($value, $route){
return \App\School::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    | App\Http\Controllers\SchoolClassesController@edit       | web

在我的控制器中

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 \App\SchoolClass::whereId($value)->first();
});