Laravel3:如何将post方法转发给控制器的动作?

时间:2013-04-07 13:20:48

标签: php laravel laravel-3

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 requestadmin/user/add显示注册表单。但是,在提交表单时,我必须将其重定向到action_user_add_process() Admin controller函数,以便将值保存到数据库中。

上面的解决方案不起作用,我得到404。

我这样打电话给表格:

action="{{ URL::to('admin/user/add') }}">

我该如何解决这个问题?

聚苯乙烯。如果有更短的方法来实现这一点,请告诉我!

1 个答案:

答案 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');