Laravel Modules + VueJS,路由被覆盖

吉尔赫姆·扎尼尼(Guilherme Zanini)

好吧,我的路线有问题,所有与Modules文件夹有关的请求均不起作用。我正在使用laravel-modules软件包。

在我的project-folder/routes/web.php我,因为我前面是VueJs SPA必须使用通配符路线:

Route::get('/{any}', 'ApplicationController')->where('any', '.*');

好的,我使用我的API路由到主api.php文件中,工作正常,但是当我放入Modules/ModuleName/Routes/api.php路由时不起作用。

如果我Route::get('any') 从主web.php航线上将其删除,我认为路线存在某种冲突。

+-----------+------------------------------+--------------------------------------------------------------------------------+--------------+
| Method    | URI                          | Action                                                                         | Middleware   |
+-----------+------------------------------+--------------------------------------------------------------------------------+--------------+
| GET|HEAD  | api/opportunity/channel-sale | App\Modules\Opportunity\Http\Controllers\OpportunityController@channelSaleList | api,auth:api |
| GET|HEAD  | api/opportunity/flow-steps   | App\Modules\Opportunity\Http\Controllers\OpportunityController@flowStepList    | api,auth:api |
| GET|HEAD  | api/opportunity/kanban       | App\Modules\Opportunity\Http\Controllers\OpportunityController@kanbanList      | api,auth:api |
| GET|HEAD  | api/user                     | Closure                                                                        | api,auth:api |
| GET|HEAD  | {any}                        | App\Http\Controllers\ApplicationController                                     | web          |
+-----------+------------------------------+--------------------------------------------------------------------------------+--------------+

我不知道该怎么办。

萨利姆(Salim Djerbouh)

您在此处有两个选择,可以将一个正则表达式传递给该any 路由,以忽略带有API前缀的路由

Route::get('/{any}', 'ApplicationController')->where('any', '^(?!api).*$');

或设置备用 ApplicationController

Route::fallback('ApplicationController');

来自文档

后备路线

使用该Route::fallback方法,您可以定义当没有其他路由与传入请求匹配时将执行的路由。通常,未处理的请求将通过应用程序的异常处理程序自动呈现“ 404”页面。但是,由于您可以fallbackroutes/web.php文件中定义路由,因此web中间件组中的所有中间件都将应用于该路由。您可以根据需要随意向此路由添加其他中间件:

Route::fallback(function () {
    //
});

后备路由应始终是应用程序注册的最后一条路由。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章