Laravel 8 资源控制器未获取模型

Laravel 8 resource controller not fetching model

在 Laravel 7 中获取模型非常简单,我只需要设置 mi 资源路由并获取地址:

http:///localhost/test/public/employee/1

但我无法让它在 Laravel 8 上运行,根据我的理解,我只需要这样做:

public function show(Employee $employee)
{
    dd($employee);
}

但是 dd 只有 returns 一个空 class:

如果我这样做:

public function show(Employee $employee)
{
    dd(Employee::find(1));
}

dd returns 正确数据:

Route::resources([
    'employee' => EmployeeController::class,
]);

有人可以帮我看看我错过了什么吗?

此致...

您的路线必须具有与

相同的变量
Route::get('/employee/{employee}', 'EmployeeController@show');

并确保您已为此路由启用绑定中间件。 ->middleware(['bindings']);

正在更新资源路由:

Route::resource('/employee', 'EmployeeController')->middleware('bindings');
Route::resource('employee', EmployeeController::class);

https://laravel.com/docs/8.x/controllers#resource-controllers

问题是我用西班牙语命名路线:

Route::apiResource('empleados', EmployeeController::class);

因此 Laravel 期望接收封装在西班牙语动词 class 中的模型(empleados 而不是 employee),所以我需要重命名方法控制器中的参数以接收正确型号:

    public function show(Employee $empleado)
    {
        return $empleado;
    }