【问题标题】:Remove Laravel Package routes and add new删除 Laravel 包路由并添加新的
【发布时间】:2020-02-24 18:54:28
【问题描述】:

我想删除 Laravel Package 路由并添加新路由。

我在我的 Laravel 6.X 应用程序上安装了这个包 https://github.com/jeremykenedy/laravel-roles,我想禁用路由,所以我想在设置的路由之前添加一个前缀 admin/...

更改vendor 文件夹中的路由无济于事,因为如果您运行composer update,它将被更新并消失,除了分叉回购之外,您知道如何解决这个问题吗?

【问题讨论】:

  • 在'composer.json'文件中找到它并删除它,然后运行composer update
  • @Ramineghbalian 感谢您抽出宝贵时间,但这不是我想要的,我想删除包附带的默认路由而不是包本身,知道吗?

标签: php laravel laravel-5 routes


【解决方案1】:

我没有时间真正扫描您可以在包中配置的所有环境变量。我建议您先检查是否有任何可以覆盖的配置值。但是,如果你不能,那么我相信你可以复制路线并将其放在你的 web.php 中

 <?php

/*
|--------------------------------------------------------------------------
| Laravel Roles And Permissions Web Routes
|--------------------------------------------------------------------------
|
*/
Route::group([
    'middleware'    => ['web'], 
    'prefix'        => 'admin',
    'as'            => 'laravelroles::',
    'namespace'     => 'jeremykenedy\LaravelRoles\App\Http\Controllers',
], function () {

    // Dashboards and CRUD Routes
    Route::resource('roles', 'LaravelRolesController');
    Route::resource('permissions', 'LaravelPermissionsController');

    // Deleted Roles Dashboard and CRUD Routes
    Route::get('roles-deleted', 'LaravelRolesDeletedController@index')->name('roles-deleted');
    Route::get('role-deleted/{id}', 'LaravelRolesDeletedController@show')->name('role-show-deleted');
    Route::put('role-restore/{id}', 'LaravelRolesDeletedController@restoreRole')->name('role-restore');
    Route::post('roles-deleted-restore-all', 'LaravelRolesDeletedController@restoreAllDeletedRoles')->name('roles-deleted-restore-all');
    Route::delete('roles-deleted-destroy-all', 'LaravelRolesDeletedController@destroyAllDeletedRoles')->name('destroy-all-deleted-roles');
    Route::delete('role-destroy/{id}', 'LaravelRolesDeletedController@destroy')->name('role-item-destroy');

    // Deleted Permissions Dashboard and CRUD Routes
    Route::get('permissions-deleted', 'LaravelpermissionsDeletedController@index')->name('permissions-deleted');
    Route::get('permission-deleted/{id}', 'LaravelpermissionsDeletedController@show')->name('permission-show-deleted');
    Route::put('permission-restore/{id}', 'LaravelpermissionsDeletedController@restorePermission')->name('permission-restore');
    Route::post('permissions-deleted-restore-all', 'LaravelpermissionsDeletedController@restoreAllDeletedPermissions')->name('permissions-deleted-restore-all');
    Route::delete('permissions-deleted-destroy-all', 'LaravelpermissionsDeletedController@destroyAllDeletedPermissions')->name('destroy-all-deleted-permissions');
    Route::delete('permission-destroy/{id}', 'LaravelpermissionsDeletedController@destroy')->name('permission-item-destroy');
});

如果你想保持你的 web.php 干净,然后在routes/laravel-permissions.php 创建一个文件,然后在你的RouteServiceProvider 中加载如下路由,

protected function mapLaravelPermissionRoutes()
{
    Route::prefix('admin')
        ->as('laravelroles::')
        ->middleware('web')
        ->namespace('/jeremykenedy\LaravelRoles\App\Http\Controllers')
        ->group(base_path('routes/laravel-permissions.php'));
}

如果您确实以这种方式加载它,请确保从您的 laravel-permissions.php 中删除分组,即删除以下代码

  Route::group([
    'middleware'    => ['web'], 
    'prefix'        => 'admin',
    'as'            => 'laravelroles::',
    'namespace'     => 'jeremykenedy\LaravelRoles\App\Http\Controllers',
], function () {

现在你只需要映射方法如下

public function map()
{
    $this->mapApiRoutes();

    $this->mapWebRoutes();

    $this->mapLaravelPermissionRoutes();
}

【讨论】:

    猜你喜欢
    • 2017-05-08
    • 1970-01-01
    • 1970-01-01
    • 2018-12-08
    • 1970-01-01
    • 1970-01-01
    • 2018-04-27
    • 2015-11-17
    • 1970-01-01
    相关资源
    最近更新 更多