Php Laravel Route collection仅获取操作列表

Php Laravel Route collection仅获取操作列表,php,laravel-5,laravel-5.4,Php,Laravel 5,Laravel 5.4,我想获得routes\web.php中定义的所有路由。我尝试了dd(\Route::getRoutes())toSql(); dd($query); 试试这个。它会帮助你。玩得开心:)直到现在我还找不到一个方法来获取受保护的属性actionList,因此,我尝试循环通过\Route::getRoutes()的输出,如下所示: $out = []; foreach (\Route::getRoutes()->get() as $r){ if(isset($r-&

我想获得
routes\web.php
中定义的所有路由。我尝试了
dd(\Route::getRoutes())getRoutes()
方法返回大约四个属性:


路线收集{#25▼
#路由:阵列:3[▶]
#所有路由:阵列:43[▶]
#名称列表:数组:21[▶]
#操作列表:数组:41[▶]
}


actionList
是受保护的属性。我需要知道能够只返回
actionList

的任何方法或方法,然后在查询结束时使用
$query=Modelname::query()->toSql();

dd($query);

试试这个。它会帮助你。玩得开心:)

直到现在我还找不到一个方法来获取受保护的属性
actionList
,因此,我尝试循环通过
\Route::getRoutes()
的输出,如下所示:

$out = [];
      foreach (\Route::getRoutes()->get() as $r){
        if(isset($r->action['controller'])){
          $out[] = $r->action['controller'];        
        } 
      }
dd($out);

通过这种方式,我得到了仅在
routes\web.php
中定义的路由。其中生成的
$out
数组的长度等于问题中考虑的
actionList
数组的长度,在我的例子41中。

我认为您可以这样检查

    $routeCollection = Route::getRoutes();

foreach ($routeCollection as $value) {
    echo $value->getPath();
}

这可能会帮助遇到此问题的人

$routeCollection = \Route::getRoutes();

foreach ($routeCollection as $i) {
dd($i->getAction()) . '<br>';
}

getName() // get name
$routeCollection=\Route::getRoutes();
foreach($i形式的routeCollection){
dd($i->getAction())。
; } getName()//获取名称

参考资料:

这是获取所有路线的正确代码

    $allRoutes = Route::getRoutes();
    $r = $allRoutes->getRoutes();
    foreach ($r as $value)
    {
        echo($value->uri())."<br>";
    }
$allRoutes=Route::getRoutes();
$r=$allRoutes->getRoutes();
foreach($r为$value)
{
echo($value->uri())。“
”; }
我不想要路径。你想要什么?路由名称?或其他什么?不,不是路由名称,实际上是控制器和操作完整命名空间,类似:
App\Http\Controllers\PostController@index
这在
routes\web.php
中定义为
Route::get('/posts','PostController@index);