Использовать класс проверки вне маршрута laravel - PullRequest
0 голосов
/ 27 августа 2018

У меня есть веб-приложение, приложение на 50% использует Ajax для отправки запроса

И я хочу объединить маршруты ajax в один. Пример:

У меня есть такие маршруты

Route::prefix('post')
                 ->middleware(['verify_origin', 'only_ajax'])
                 ->name('post.')
                 ->group(function() {

                    Route::post('save-user-profile', 'User\ProfileSettingController@updateProfile')->name('saveUserProfile');
                    Route::post('save-user-social-media', 'User\ProfileSettingController@updateSocialMedia')->name('saveUserSocialMedia');
                    Route::post('save-user-avatar', 'User\ProfileSettingController@updateAvatar')->name('saveUserAvatar');
                    Route::post('save-user-account', 'User\AccountSettingController@updateAccount')->name('saveUserAccount');

            });         

Я хочу обернуть, все методы на post префикс для одного контроллера

Как это

function handlePost($method) {
   call_user_func($method);
}

Использование: handlePost('saveUserProfile')

Выше действие метода вызывает действие saveUserProfile, метод saveUserProfile использует класс проверки.

Как вызвать метод, но все еще использовать класс проверки

1 Ответ

0 голосов
/ 27 августа 2018

Вы можете иметь 1 маршрут, например save-user, который может быть одним классом контроллера:

Route::prefix('post')
             ->middleware(['verify_origin', 'only_ajax'])
             ->name('post.')
             ->group(function() {

                Route::post('save-user', 'User\ProfileSettingController')->name('saveUserProfile');

        });

Затем с помощью метода __invoke внутри контроллера определите, какое действие необходимо запустить (вероятно, будет передано атрибутом action и т. Д.) И вызовите соответствующий метод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...