在laravel路线外使用验证类

时间:2018-08-27 14:39:07

标签: php laravel laravel-5 laravel-5.2

我有一个网络应用程序,该应用程序有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 :(得分:1)

对于实例save-user,您可以有1条路由,该路由可能是单个控制器类:

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

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

        });

然后在控制器内部的__invoke方法上确定需要触发哪种操作(可能会由action属性来传递等等)并调用适当的方法。