扫描Laravel注释中特定命名空间下的路由

问题描述 投票:0回答:1

我在“App\Htpp\Controllers”目录的Panel命名空间下有控制器, 所以我的命名空间是:App\Http\Controllers\Panel

我重写了routeScans()函数,如下所示,但没有帮助!

  public function routeScans() {
    $classes = parent::routeScans();

    $classes = array_merge(
        $classes,
        $this->getClassesFromNamespace('App\Http\Controllers\Panel')
     );

     return $classes;
   }

我如何扫描它们的路线?

php laravel laravel-5 annotations laravel-routing
1个回答
0
投票

我创建了一个列出所有可用路线的函数,您可以使用它并根据您的需要进行修改

function routelist () {
        $allRoutes = Route::getRoutes()->getRoutes();
        $availableRoutes = [];
        foreach ($allRoutes as $route) {
            $availableRoutes['availableAPI'][$route->getName()] = [
                'method' => $route->getMethods()[0],
                "uri" => $route->getUri(),
                "name" => $route->getName(),
                "controller" => $route->getAction()['uses'],
            ];
        }

        $table = "<table>";
        foreach ($availableRoutes['availableAPI'] as $key => $entry) {
            //dd($entry['controller']);
            $table .= "<tr>";
            $table .= "<td>" . @$entry['method'] . "</td>";
            $table .= "<td>" . @$entry['uri'] . "</td>";
            $table .= "<td>" . @$entry['name'] . "</td>";

            if (is_string($entry['controller'])) {
                $table .= "<td>" . @$entry['controller'] . "</td>";
            } else {
                $table .= "<td>closure function(){}</td>";
            }
            $table .= "</tr>";
        }
        $table .= "</table>";
        return $table;
    }
© www.soinside.com 2019 - 2024. All rights reserved.