簡體   English   中英

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 只返回一個空類:

結果

如果我這樣做:

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

dd 返回正確的數據:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM