【发布时间】:2020-11-20 07:47:50
【问题描述】:
我有动态 URL 结构,具有以下页面表,其中页面 URL 设置为页面类型。 我有 Apache 服务器,其中 URL 区分大小写。我想强制路由变量为小写,以防用户输入大写 URL 或抛出 404 错误。
目前,当 URL 以大写形式输入时,它会显示 View [About] not found。找不到视图/目录时,如何强制路由变量为小写或抛出 Fail 错误?
页表
id | name | type | slug
1 | About | about | about
2 | Contact | contact | contact-us
3 | Events & Blog | event_blog | events-blog
web.php
Route::get('/{page}', 'Controller@page')->name('view_page')->where(['page' => Str::lower('[\w\d\-]+(.*)')]);
控制器
public function page($page)
{
$page = Page::where('slug' => $page)->firstOrFail();
return view($page, compact('page'));
}
我在资源文件夹中有about、contact、event_blog 目录,它对小写 URL 正常工作,但对大写 URL 显示错误。
【问题讨论】:
标签: php laravel error-handling routes controller