【发布时间】:2023-03-05 14:02:01
【问题描述】:
使用 Laravel 6,我在控制器中注入了一个模型,如下所示:
public function edit(School $school)
{
return view('/school/form', ['school' => $school]);
}
当我输入这样的网址时,一切正常:
http://localhost:8000/schools/3d537a0f-4c74-4fae-99af-6f1b2c4b34c8/edit
但是如果我尝试另一个像这样的网址(使用错误的 uuid):
http://localhost:8000/schools/3d537a0f-4c74-4fae-99af-6f/edit
然后我有这个 PostgreSQL 错误:
SQLSTATE[22P02]:无效的文本表示:7 错误:无效 uuid 类型的输入语法:“3d537a0f-4c74-4fae-99af-6f1b2c4b34c” (SQL: select * from "schools" where "id" = 3d537a0f-4c74-4fae-99af-6f1b2c4b34c 限制 1)
这是否意味着我必须先检查 uuid ?有什么优雅的方法可以防止这种情况并自动重定向到 404 页面?
【问题讨论】:
-
感谢您提供此链接。我认为我的模型配置良好: public $incrementing = false;受保护的 $keyType = '字符串';所以我认为问题不在于模型。
-
我参考了问题的解决方案:我删除了 storage/framework/sessions 里面的会话缓存文件,然后全部恢复工作。我建议清除缓存完全虽然
-
我试图清除缓存,但没有成功。我继续搜索。
标签: php laravel postgresql