自动检测 PHP Laravel 应用程序中的所有路由? [复制]

Posted

技术标签:

【中文标题】自动检测 PHP Laravel 应用程序中的所有路由? [复制]【英文标题】:Auto detect all routes in a PHP Laravel Application? [duplicate] 【发布时间】:2015-09-29 14:07:13 【问题描述】:

我已经在我老板的公司应用程序中构建了一个自定义用户权限系统,其中包括一个供员工使用的网络摄像头时钟以及用于从数据库和许多其他公司相关应用程序和页面运行报告的页面。

该应用是使用 php 和 Laravel 构建的。

在我的 Laravel 路由文件中,我有一些部分设置为需要管理员用户身份验证,而其他部分只需要并登录用户。

现在我们正在扩展应用程序,并且我已经构建了一个权限系统,该系统将允许在每个页面和每个用户的基础上设置页面访问权限。我需要取消我的路由身份验证要求,而是使用我为每个用户的新权限设置来设置每个页面的权限。

所以我的问题是,如何自动检测应用中的每个 page.route,以便在我的权限页面上显示应用每个页面的条目?

在下图中,每个页面都是手动添加到数据库表中的。我现在需要自动检测应用中的所有路线。

【问题讨论】:

我可能会过早发布此内容。现在我看到有一个可用的 getRoutes() 方法,我需要研究一下 【参考方案1】:

我发布这个问题太早了。我现在看到有一个getRoutes() 方法

来自答案https://***.com/a/23673282/143030的代码

Route::get('routes', function() 
$routeCollection = Route::getRoutes();

echo "<table style='width:100%'>";
    echo "<tr>";
        echo "<td width='10%'><h4>HTTP Method</h4></td>";
        echo "<td width='10%'><h4>Route</h4></td>";
        echo "<td width='80%'><h4>Corresponding Action</h4></td>";
    echo "</tr>";
    foreach ($routeCollection as $value) 
        echo "<tr>";
            echo "<td>" . $value->getMethods()[0] . "</td>";
            echo "<td>" . $value->getPath() . "</td>";
            echo "<td>" . $value->getActionName() . "</td>";
        echo "</tr>";
    
echo "</table>";
);

【讨论】:

以上是关于自动检测 PHP Laravel 应用程序中的所有路由? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Laravel基础

Laravel的请求声明周期

检测 PHP 中的浏览器语言

使用 Composer 2 自动加载器的 Laravel 基类找不到特征?

PHP中的自动图像格式检测

laravel怎么自动加载Model和一些常用的类