我有一个网络应用程序,该应用程序有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
使用验证类。
如何调用方法,但仍使用验证类
答案 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
属性来传递等等)并调用适当的方法。