文件夹的结构:
-App
-CustomClasses
Menu.php
-Http
-Controllers
TestController.php
当我从Route::getRoutes()
中使用TestController.php
时,我具有所有路由,但是当我在Menu.php
中使用相同方法时,结果为空。因此,我需要的route('route-name')
也无法正常工作。我认为可能是由于名称空间不同所致,但是是否有任何简单的方法可以通过Menu.php
或Controllers文件夹之外的任何其他文件中的路由名称获取路由URL?
答案 0 :(得分:0)
一段时间后,我自己找到了解决方案。在app/Providers/AppServiceProvider.php
中,有两种方法:register()
和boot()
。我在boot()
方法中创建了Menu对象的实例,但是仍然收到空的路由列表。我注意到config/app.php
中有一个服务提供商列表,但是这里的顺序很重要。
App\Providers\AppServiceProvider::class,
App\Providers\AuthServiceProvider::class,
// App\Providers\BroadcastServiceProvider::class,
App\Providers\EventServiceProvider::class,
App\Providers\RouteServiceProvider::class,
您可以看到AppSeriveProvider
在RouteServiceProvider
之前,这意味着Route的引导方法最后运行,因此如果我尝试在{{1 }}。
我的解决方案是创建AppServiceProvider
并在Route的提供程序之后加载它,而不是在MenuServiceProvider
中创建它。