Tho*_*cic 2 routes laravel eloquent
我在 Laravel 5.7 项目中使用 UUID 密钥,它运行得非常好。
当通过路由从数据库请求一个项目时,键被查找并作为一个字符串进行比较。当请求发送大写的 uuid 字符串时,路由模型绑定将找不到模型,尽管 Laravel 的 UUID 字符串是小写的。
有没有办法确保在执行查找查询之前键是小写的?
文档解释说我可以像这样自定义解析逻辑:
Route::bind('user', function ($value) {
return App\User::where('name', $value)->first() ?? abort(404);
});
Run Code Online (Sandbox Code Playgroud)
但是这是无用的,因为它仅适用于特定的通配符(此处为“用户”),但我需要将其应用于每个绑定,并且该类当然是动态的。
有没有办法自定义该行为,或者有人可以将我指向 Laravel 进行动态解析的代码吗?
我不想退回到仅从 url 中获取标识符,然后在每条路线中找到自己。我真的很想更改所有路由模型绑定的行为。
resolveRouteBinding()在您的模型中覆盖:
public function resolveRouteBinding($value)
{
return $this->where($this->getRouteKeyName(), strtolower($value))->first();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
583 次 |
| 最近记录: |