Laravel 5 - 3表格在同一页面上

时间:2015-09-14 19:12:17

标签: php laravel laravel-5.1

我和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'
]);
?>

但最后一条规则,阻止他人。

怎么办? 感谢

2 个答案:

答案 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语句。