【问题标题】:Overriding routes set by packages (Laravel 5.2)覆盖包设置的路由(Laravel 5.2)
【发布时间】:2016-09-30 06:17:57
【问题描述】:

我正在使用 laravel 5.2 和 sentinel 包 (rydurham/Sentinel)。
这个包自动设置了一些路由,即:

Route::get('login', ['as' => 'sentinel.login', 'uses' => 'SessionController@create']);
Route::get('logout', ['as' => 'sentinel.logout', 'uses' => 'SessionController@destroy']);
Route::get('sessions/create', ['as' => 'sentinel.session.create', 'uses' => 'SessionController@create']);
Route::post('sessions/store', ['as' => 'sentinel.session.store', 'uses' => 'SessionController@store']);

为了添加我的自定义逻辑,我创建了一个新的会话控制器,并尝试执行以下操作来覆盖路由:

Route::get('login', ['as' => 'sentinel.login', 'uses' => 'AuthController@create']);
Route::get('sessions/create', ['as' => 'sentinel.session.create', 'uses' => 'AuthController@create']);
Route::post('sessions/store', ['as' => 'sentinel.session.store', 'uses' => 'AuthController@store']);

问题 laravel 的路由似乎有利于包路由。我可以注释掉包中的路线,但这会使更新变得很痛苦。
如何在不修改包的情况下覆盖路由? 谢谢!

【问题讨论】:

  • 浏览到 vendor 文件夹并检查是否有任何类似于 routes.php 的文件并删除您不需要的路由(假设这将工作,从未测试过)
  • 这是我最初的方法,但在部署过程中此文件会被重置。

标签: php laravel laravel-5


【解决方案1】:

您可以在config/sentinel.php 中禁用 Sentinel 默认路由

/*
|--------------------------------------------------------------------------
| Default Routing
|--------------------------------------------------------------------------
|
| Sentinel provides default routes for its sessions, users and groups.
| You can use them as is, or you can disable them entirely.
|
*/
'routes_enabled' => true,

【讨论】:

  • 哦,真不敢相信我错过了这个。谢谢!
猜你喜欢
  • 2017-02-15
  • 2016-09-21
  • 2019-02-16
  • 2020-05-02
  • 2017-11-27
  • 1970-01-01
  • 2020-02-03
  • 2013-08-06
  • 2015-04-23
相关资源
最近更新 更多