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);