我和Laravel在一起,我需要帮助。
在我的编辑用户页面中,我有3个表单。 但我无法在我的生根中做到如何使它发挥作用。
我的代码(在路线中):
<?php
// update role
Route::post('edit/{id}', [
'as' => 'user_post_update_role',
'uses' => 'UserController@updateRole'
]);
// update infos
Route::post('edit/{id}', [
'as' => 'user_post_update',
'uses' => 'UserController@update'
]);
// update password.
Route::post('edit/{id}', [
'as' => 'user_post_update_password',
'uses' => 'UserController@updatePassword'
]);
?>
但最后一条规则,阻止他人。
怎么办? 感谢
答案 0 :(得分:1)
执行此操作的唯一方法是使用单个路径,并让处理该路径的控制器识别提交的表单。
您基本上对这些路线做了什么,定义了三条路线,这些路线对于所有意图和目的都是相同的。因此,它只使用作为每个新创建的最后一个,覆盖其前一个。
或者,您可以按照帖子评论中的说法进行操作,使用edit/{id}
更新用户信息,edit/password/{id}
更新密码,edit/role/{id}
更新角色。你甚至可以将它们完全拆分为单独的方法,或者将它们分开。
在您实现这一目标的众多方法中,遗憾的是,您选择的方法不在其中。
答案 1 :(得分:0)
像这样编辑你的路线:
// update role
Route::post('edit/{id}/role', [
'as' => 'user_post_update_role',
'uses' => 'UserController@updateRole'
]);
// update infos
Route::post('edit/{id}/main', [
'as' => 'user_post_update',
'uses' => 'UserController@update'
]);
// update password.
Route::post('edit/{id}/password', [
'as' => 'user_post_update_password',
'uses' => 'UserController@updatePassword'
]);
所以你有独特的路线,不需要复杂的if else语句。