通过Route::getRoutes()laravel方法获取特定路径的路线 - php

问题很明显。

我们知道,使用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…