Route::get('admin/user/add', function()
{
if (!Input::has('submit'))
return View::make('theme-admin.user_add');
else
Redirect::to('admin@user_add_process');
});
正常GET request
到admin/user/add
显示注册表单。但是,在提交表单时,我必须将其重定向到action_user_add_process()
Admin controller
函数,以便将值保存到数据库中。
上面的解决方案不起作用,我得到404。
我这样打电话给表格:
action="{{ URL::to('admin/user/add') }}">
我该如何解决这个问题?
聚苯乙烯。如果有更短的方法来实现这一点,请告诉我!
答案 0 :(得分:2)
您需要使用to_action()
重定向方法指定您重定向到控制器操作。
return Redirect::to_action('admin@user_add_process');
或者,您可以使用此URL甚至不使用您创建的路径,使if / else无关。
{{ URL::to_action('admin@user_add_process') }}
在第三点,保持路线清洁使维护更容易前进。路线使用宁静的方法,利用它。使用相同的URL,您可以创建并返回带有GET请求的视图,并使用POST请求提交表单。
Route::get('admin/user/add', function() { ... }
Route::post('admin/user/add', function() { ... }
您还可以让您的路线自动使用这样的控制器操作:
Route::post('admin/user/add', 'admin@user_add_process');