为 POST 视图返回 Redirect::back Laravel

Posted

技术标签:

【中文标题】为 POST 视图返回 Redirect::back Laravel【英文标题】:Return Redirect::back for a POST View Laravel 【发布时间】:2016-03-02 07:23:21 【问题描述】:

我是 Laravel 的新手!!

当从我的控制器使用 return redirect::back() 到 POST 视图时,我在 Laravel 4.2 中遇到错误。

错误: Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException

我的路线:

Route::post("productos_categoria", array(
"as"=>"productosCategoria",
"uses"=>"ProductosController@mostrarPorCategoria"
));

我的功能控制器:

public function sumarVoto() 
    $correoUsuario = Session::get('correoUsuario');
    $id_producto = Input::get('idProducto');

    $existeVoto = DB::table('voto_usuarios')
                        ->where('CORREO', '=', $correoUsuario)
                        ->where('ID_PRODUCTO', '=', $id_producto)
                        ->count();

    if($existeVoto > 0) 
        Session::flash($id_producto, '¡Usted ya realizó el voto con anterioridad para este producto!');
        return Redirect::back();
    

    DB::table('voto_usuarios')->insert(array('CORREO' => $correoUsuario, 'ID_PRODUCTO' => $id_producto));

    DB::table('productos')->where('productos.ID_PRODUCTO', '=', $id_producto)->increment('VOTO');
    Session::flash($id_producto, '¡Voto ingresado con éxito!');
    return Redirect::back();

Redirect::back() 仅用于 GET 视图或 GET 路由??

如何使用 post 方法从我的控制器返回以前的视图??

【问题讨论】:

尝试使用return redirect()->back(); 我尝试但失败错误:调用未定义函数重定向() 这取决于请求的来源。如果您当前放置表单的 url 应该使用 GET 方法。那么您可以从发布请求重定向回 GET url。否则会抛出错误。 【参考方案1】:

一般你不能重定向到 POST 方法原因是

Laravel 的 Redirect 使用 HTTP 响应重定向方法。 HTTP 中没有使用 POST 的重定向方法,因此在 Laravel 中不存在。

但是通过在不同的地方进行一些搜索,我找到了一个可以遵循的解决方案

步骤如下:

    扩展 Redirector 类以记录有关预期请求的附加信息。

    创建一个新的服务提供者,它会覆盖 IOC 容器中的“重定向”。

    创建一个新的服务提供者,它将在重定向后设置预期的方法和输入。

    最后将新的服务提供者添加到 app/config/app.php 中的 providers 数组中

有关详细代码和想法,请点击 Laravel.io 上的以下链接

http://laravel.io/forum/04-23-2014-redirectintended-with-routepost

【讨论】:

以上是关于为 POST 视图返回 Redirect::back Laravel的主要内容,如果未能解决你的问题,请参考以下文章

php 此函数返回posttype的post count视图

如何使用ajax将部分视图返回为html

Ajax POST 返回 Bootstrap 面板主体内的完整部分视图

混合 Jquery Ajax Post 到 ActionResult,我还能返回一个新视图吗?

POST表单提交后django显示消息

RESTFUL风格 put 报错 HTTP Status 405 - JSPs only permit GET POST or HEAD