[英]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 只返回一個空類:
如果我這樣做:
public function show(Employee $employee)
{
dd(Employee::find(1));
}
dd 返回正確的數據:
Route::resources([
'employee' => EmployeeController::class,
]);
有人可以幫我找到我錯過了什么嗎?
問候...
您的 Route 必須具有相同的變量,例如
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 期望接收封裝在西班牙語動詞類中的模型(empleados 而不是employee),所以我需要重命名方法控制器中的參數以接收正確的模型:
public function show(Employee $empleado)
{
return $empleado;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.