0
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') }}">

我该如何解决这个问题?

附言。如果有更短的方法来实现这一点,请告诉我!

4

1 回答 1

2

您需要使用 Redirect 方法指定您正在重定向到控制器操作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');
于 2013-04-07T16:29:41.773 回答