我在 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();
}
}
然后您可以使用for
或foreach
对其进行迭代。
关于php - 如何从 Laravel 5 中的模块/目录获取路由列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35692566/