我一直围着这个圈子走了一圈。
我们使用捆绑包在Laravel 3中编写了一个CMS系统。现在是使用最新的Lavarel 5.6开发新产品的时候了。
我们希望能够在web.php中定义自己的路由,但CMS包路由文件会选择未定义的所有路由,以便检查CMS中是否定义了页面并返回正确的视图。
在L3,我们做了:
Event::override('404', function() {
...magic
在laravel 5.6你不能这样做所以我尝试过各种各样的:
Route::any('/{any}', function ($url = false) {
})->where('any', '.*');
但问题是Laravel加载内存中的所有路由文件,而/ {any}路由会覆盖web.php中定义的任何路由,无论服务提供程序的加载顺序如何,我们都希望允许定义路由,但是清除任何尚未定义的东西。
在L4中,您似乎曾经能够这样做:
App::missing(function($e) {
但是再一次,这在L5中是不可能的
我可以通过异常处理程序运行它,但我希望它在包中工作,因此它可以轻松安装,而且我也无法使其工作!
任何帮助,将不胜感激。
// other routes redirected to login
Route::get('/{any}', function () {
return redirect('/login');
})->where('any', '.*s');
尝试这条路线