Удалить Laravel Пакет маршрутов и добавить новый - PullRequest
0 голосов
/ 24 февраля 2020

Я хочу удалить Laravel Маршруты пакетов и добавить новые.

Я установил этот пакет https://github.com/jeremykenedy/laravel-roles в своем приложении Laravel 6.X, я хотел отключить маршруты, поэтому я хотел бы добавить префикс admin / перед заданными маршрутами ...

Изменение маршрутов в папке vendor не помогает, потому что она будет обновляться и исчезнет, ​​если вы запустите composer update, есть идеи, как решить эту проблему, кроме разветвления репо?

1 Ответ

1 голос
/ 24 февраля 2020

У меня не было времени на самом деле просмотреть все переменные среды, которые вы можете настроить в пакете. Я бы рекомендовал проверить, есть ли какие-либо значения конфигурации, которые вы можете переопределить в первую очередь. Однако, если вы не можете, то я уверен, что вы можете скопировать маршруты и разместить их в своей сети. 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');
});

Если вы хотите сохранить свою сеть. 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();
}
...