php - 如何从 Laravel 5 中的模块/目录获取路由列表?

标签 php laravel laravel-4 laravel-5 laravel-routing

我在 app 文件夹中有 3 个模块,例如:用户模块、角色模块和权限模块。此外,我在每个模块中都有不同的 route.php 文件。现在我需要从用户模块获取路由列表。

我使用这段代码得到了所有模块的完整列表:

    $routeCollection =Route::getRoutes();  
    foreach ($routeCollection as $value) {
        echo $value->getPath()."<br>";
    }

我想获取来自特定模块或特定目录的路由列表作为用户模块,而不是所有路由。

如何获取特定文件夹/模块/文件的路由列表?

最佳答案

如果您在要查找的路由中使用相同的 Controller ,您可以这样做:

$routeCollection = \Route::getRoutes();

foreach ($routeCollection as $value) {
    $lookFor = 'UserController';
    $controller = $value->getAction();
    $controller = $controller['controller'];

    if (strpos($controller, $lookFor)) {
        echo "This route uses UserController controller ";
    }

    echo $value->getPath()."<br>";
}

好吧,你明白了。您可以使用相同的方法在 Route::getRoutes() 集合中搜索任何其他信息。

更新:

如果你想抓取所有使用 UserController 的路由,你可以这样做:

$routeCollection = \Route::getRoutes();
$userRoutesArray = [];

foreach ($routeCollection as $value) {
    $lookFor = 'UserController';
    $controller = $value->getAction();
    if(isset($controller['controller'])){ 
        $controller = $controller['controller'];
    }else{
        continue;
    }

    if (strpos($controller, $lookFor)) {
        array_push($userRoutesArray, $value->getPath();
    }
}

然后您可以使用forforeach 对其进行迭代。

关于php - 如何从 Laravel 5 中的模块/目录获取路由列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35692566/

相关文章:

Php MySQL 仅当 ip 是新时才更新列 id

php - 我的PHP文件不再在浏览器中打开

php - 如何使用 Laravel over Model 创建新的空数据库

Laravel 不强制转换字符串主键

php - 选择获取数组中的不同项目

php - 用不同的字符串替换相同的字符

php - Laravel:如何获取分配给特定代理的客户的所有订单

laravel-4 - 如何在 Laravel 中对对象数组进行分页?

php - 类别名冲突 Laravel 4

laravel - 使用 Eloquent Data Laravel 显示表格表单