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

时间:2015-07-10 17:56:26

标签: php laravel

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

该应用程序是使用PHP和Laravel构建的。

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

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

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

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

enter image description here

1 个答案:

答案 0 :(得分:2)

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

答案代码https://stackoverflow.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>";
});