- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Laravel 的隐式路由模型绑定(bind)不起作用。它不是在查找标识符指示的记录。我得到了一个全新的模型对象。
给定这段代码:
Route::get('users/{user}', function (App\User $user, $id) {
$user2 = $user->find($id);
return [
[get_class($user), $user->exists, $user],
[get_class($user2), $user2->exists],
];
});
还有这个 URL:/users/1
我得到这个输出:
[["App\\User",false,[]],["App\\User",true]]
我使用的是 PHP 7.2 和 Laravel 5.6。
附加信息
我已经在其他 Laravel 项目中成功完成了隐式路由模型绑定(bind)。我正在处理现有的代码库。据我所知,以前没有使用过该功能。
用户记录存在。它没有被软删除。该模型不使用 SoftDeletes
特征。
我尝试过使用各种独特的路线名称和其他模型。
我已经检查了 App\Http\Kernel
类中常见的罪魁祸首。 $middlewareGroups
有 \Illuminate\Routing\Middleware\SubstituteBindings::class,
在 web
部分和 $routeMiddleware
包含 'bindings' =>\Illuminate\Routing\Middleware\SubstituteBindings::class,
。
最佳答案
它应该可以在 Laravel 中正常运行。我刚刚在我的 Laravel 5.6 应用程序中验证了它,没有这个问题。
可能出现的情况:
web.php
或 api.php
文件中 - 这两个组都设置了 bindings
(或 \Illuminate\Routing\Middleware\SubstituteBindings::class
) inside $middlewareGroups
property in app/Http/Kernel.php
文件您已经设置了一些自定义绑定(bind)。例如,如果您在某处定义了这样的代码:
路线::绑定(bind)('用户',功能($用户){
返回新的\App\User();
});
然后你会得到你展示的结果,因为你使用自定义逻辑并且只返回空用户模型。
如果您认为以上所有都是错误的,我会从新的 Laravel 5.6 应用程序开始尝试重现该问题。
关于php - 隐式路由模型绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51660203/
我是一名优秀的程序员,十分优秀!