首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Laravel 8资源控制器未获取模型

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

Stack Overflow用户
提问于 2020-10-23 23:30:16
回答 3查看 184关注 0票数 1

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

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

但我不能让它在Laravel 8上工作,根据我的理解,我只需要这样做:

代码语言:javascript
运行
复制
public function show(Employee $employee)
{
    dd($employee);
}

但是dd只返回一个空类:

如果我这样做:

代码语言:javascript
运行
复制
public function show(Employee $employee)
{
    dd(Employee::find(1));
}

dd返回正确的数据:

代码语言:javascript
运行
复制
Route::resources([
    'employee' => EmployeeController::class,
]);

有人能帮我找找我遗漏的东西吗?

致敬..。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-01-15 13:35:17

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

代码语言:javascript
运行
复制
Route::apiResource('empleados', EmployeeController::class);

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

代码语言:javascript
运行
复制
    public function show(Employee $empleado)
    {
        return $empleado;
    }
票数 0
EN

Stack Overflow用户

发布于 2020-10-23 23:42:13

路径必须具有相同的变量,如下所示

代码语言:javascript
运行
复制
Route::get('/employee/{employee}', 'EmployeeController@show');

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

更新资源工艺路线:

代码语言:javascript
运行
复制
Route::resource('/employee', 'EmployeeController')->middleware('bindings');
票数 0
EN

Stack Overflow用户

发布于 2020-10-24 01:50:19

代码语言:javascript
运行
复制
Route::resource('employee', EmployeeController::class);

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64502987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档