控制器重定向回POST表单

时间:2013-12-12 15:07:28

标签: laravel laravel-4

我有一个显示名单列表的表格,旁边有一个“编辑”按钮和隐藏的id值。 单击“编辑”按钮将隐藏的id作为表单值发布并显示编辑页面,以便用户可以更改该人员的详细信息。很标准。

编辑细节并提交我正在使用验证器时。如果验证失败,则需要返回编辑页面并显示错误。问题是编辑页面需要通过POST方法获取Id值,但重定向似乎只使用GET方法,这导致“找不到控制器方法”错误,因为没有设置Get路由。

有谁知道如何通过POST而不是GET重定向回页面。目前我的代码如下:

public function postEditsave(){
    ...
    if ($validator->fails())
    {
        return Redirect::to('admin/baserate/edit')
        ->withErrors($validator)
        ->withInput();
    }else{ 
                ...

感谢

4 个答案:

答案 0 :(得分:4)

您可以使用Redirect :: back() - > withInput();

  

您可能希望将用户重定向到之前的位置,例如,在提交表单后。您可以使用back方法

来完成此操作

请参阅:http://laravel.com/docs/5.0/responses

答案 1 :(得分:1)

您无需使用POST即可转到修改页面。您可以在路线中使用GET和参数,请查看:http://laravel.com/docs/routing#route-parameters

你有一个GET路由来显示编辑页面,以及一个用于在用户提交表单时处理请求的POST路由。

它看起来像这样(注意参数):

public function getEdit($id)
{
    return View::make(....);

}

public function postEdit($id)
{
    ...
    return Redirect::back()->withErrors($validator)->withInput();
}

答案 2 :(得分:0)

如果存在“使用POST重定向”,那么我不知道。我建议你只使用flash数据

Redirect::to('user/login')->with('id', 'something');

答案 3 :(得分:0)

您可以使用Redirect::to("dashboard/user/$id")->withErrors($validator)->withInput();。如果验证有任何错误,您应该使用双引号来传递参数。