php - 如何检查当前网址在 Laravel 中是否有效?
问题描述
我想做的事
laravel/routes/web.php
Route::get('sample', 'SampleController@index');
在这种情况下,http://localhost:8000/sample 是有效的。
但是 http://localhost:8000/test 是无效的,因为它没有被定义。
当前代码
return \Route::current() ? true : false;
它不返回 null :
\Route::current()
返回\Illuminate\Routing\Route
。
解决方案
如果你想测试一个 URI 是否匹配一个注册的路由,你可以调用match
Route Collection:
$request = \Illuminate\Http\Request::create('admin', 'get');
try {
$match = Route::getRoutes()->match($request);
} catch (\Symfony\Component\HttpKernel\Exception\NotFoundHttpException $e) {
// no match
}
虽然,不完全确定你的意图是什么。
测试当前路由本身是否有效是没有意义的,因为它们成为当前路由意味着它匹配了一个路由并且它是有效的。如果请求无效,则将返回 404 或错误方法异常。
推荐阅读
- python - sCons 以什么顺序执行构建器?
- vb.net - 如何处理:框架方法中的“空引用异常”
- php - 如何清除未使用的 fontawesome 图标?
- linux - 如何正确地将缓冲区指针传递给 x86_64 程序集中的 Linux 系统调用?
- ansible - 用正则表达式替换在 Ansible 中不起作用(替换)
- java - JUnit-Mockito 测试因 InvalidUseOfMatchersException 而失败
- python - 将 FOR 循环应用于函数
- python - 3 和 4 长度元组在 numpy 数组形状中指定了什么?
- ionic-framework - 自定义组件中的 Ionic 4 颜色属性
- python - 获取调用方法的对象