问题很明显。
我们知道,使用Route::getRoutes()
方法可以在laravel项目中获取所有已定义的路由,如下所示:
$routeCollection = Route::getRoutes();
$arr = [];
foreach ($routeCollection as $value) {
$arr[] = $value->getPath();
}
return array_unique($arr);
但是我想在特定路径中获取所有已定义的路由,例如/admin
。
我以为可以将路径名传递给getRoutes()
,但这对我不起作用。
我怎样才能做到这一点 ?
参考方案
这是一个利用Laravel集合的解决方案:
$routes = collect(Route::getRoutes()->getRoutes())->reduce(function ($carry = [], $route) {
!starts_with($route->getPath(), 'admin') ?: $carry[] = $route->getPath();
return $carry;
});
因此,现在routes
数组将返回以admin
开头的路由路径的列表。这是正在发生的事情:
使用Route::getRoutes()
将返回RoutesCollection
,该getRoutes
具有自己的Illuminate\Routing\Route
方法,该方法返回collect
实例的平面数组。然后,您可以将其传递给Collection
方法,该方法将返回所有这些路由的admin
。
现在,您只需要删除不以filter
开头的值。如果那是一个简单的值数组,可以使用path
方法轻松实现,但是由于这是一个对象数组,并且您希望getPath
字符串只能通过对reduce
的方法调用来访问,因此可以将collection的Laravel Documentation方法用作解决方法。
此外,您还会注意到条件检查路径是否以admin
而不是/admin
开头。这是因为Laravel路由器会在构建路由集合时自动去除前导斜线。
您可以在中阅读有关集合的更多信息。
PHP-将日期插入日期时间字段 - php我已在数据库中使用datetime字段存储日期,使用PHP将“今天的日期”插入该字段的正确方法是什么?干杯, 参考方案 我认为您可以使用php date()函数
Laravel Blade模板尝试获取非对象的属性时如何返回null而不是ErrorException - php我正在编写一些Laravel Blade模板,并且我的模型可能包含空对象。我非常想尝试获取对象属性,如果有错误,则返回null。因此,不必编写以下代码:@if ($model->child_object_that_may_be_null) {{ $model->child_object_that_may_be_null->interesti…
PHP-如何获取类的成员函数列表? - php如果我知道班级的名字。有没有办法知道类的成员函数列表? 参考方案 get_class_methods()是你的朋友
将所有具有特定路径名的URL重定向到某个视图-LARAVEL - php好的,我正在使用laravel,网站和管理版块运行两个React项目。我希望两个应用程序都在单独的页面上呈现,因为它们的CSS会发生冲突。因此,在我的web.php中,我有这个Route::view('/{path?}', 'app');,但这会将我的所有路线重定向到我的app.blade.php视图。我只是想知道我是…
Laravel-无需登录即可认证用户 - php在laravel 5.4中,可以在不登录用户的情况下对用户进行身份验证吗?从laravel doc中,我能找到的最接近的东西是:Auth::once($credentials) 但这仍然使该用户感到厌烦。我需要做的就是只是知道使用该电子邮件和密码的用户是否存在。 参考方案 您可以将Auth::attempt函数与第三个参数用作false进行登录 $email…