一个包罗万象的路由在包路由之前切割(在我的情况下是翻译) - Laravel 5.2


a catch-all route cuts before package routes (translations in my case) - Laravel 5.2

我用 https://github.com/barryvdh/laravel-translation-manager在我的应用程序中处理翻译。翻译管理器使用包中定义的路由translations

问题

我想在我的Http/routes.php文件的末尾放一个包罗万象的路由。

// http://laraveldaily.com/routes-file-redirect-everything-else-to-homepage/
Route::any('{query}', 
function() { return redirect('/'); })
->where('query', '.*');

待办事项

不幸的是,包路由现在被忽略了。有没有办法让这两件事都起作用?

这是因为您的catch-all路由在translations路由(Barryvdh'TranslationManager'ManagerServiceProvider 中)之前注册(以 RouteServiceProvider 为单位)。一种可能的解决方案是更改这些服务提供商app.php中的顺序:

'providers' => [
    //........
    Barryvdh'TranslationManager'ManagerServiceProvider:class,
    App'Providers'RouteServiceProvider::class,
    //............
]