【问题标题】:How do I send data via post where it call route through controller laravel?如何通过 post 发送数据,它通过控制器 laravel 调用路由?
【发布时间】:2018-02-13 09:28:14
【问题描述】:

我的情况是这样的:

我有添加方法。如果方法运行,它会调用路由

这样的代码:

public function add(Request $request)
{
    ...
    return redirect('shop/payment/checkout/'.json_encode($data['cart']).'/'.$id);
}

我的路线是这样的:

Route::group(['prefix' => 'shop','as'=>'shop.'], function () {
    Route::get('payment/checkout/{cart}/{id}', ['as'=>'payment.checkout','uses'=>'ShopController@checkout']);
});

它会在shop控制器中调用结账方法

这样的方法:

public function checkout($cart=null, $id=null)
{
    dd($cart, $id)
}

有效

如果代码执行,会显示$cart$id的结果

但它使用get

我想改用post

因为如果使用get,数据购物车在url中查找

我该如何解决这个问题?

所以数据在 url 中不可见

看来这个case一定要用post

但我仍然对在这种情况下使用 post 感到困惑

【问题讨论】:

    标签: laravel redirect post routes laravel-5.3


    【解决方案1】:

    你不能用 POST 重定向,这是一个 http 限制,不是 Laravel。

    也许最好的解决方案是flash the data you need to the session

    控制器:

    public function add(Request $request)
    {
        ...
        return redirect('shop/payment/checkout')->with('cart', json_encode($data['cart'])->with('id', $id);
    }
    

    路线:

    Route::group(['prefix' => 'shop','as'=>'shop.'], function () {
        Route::get('payment/checkout', ['as'=>'payment.checkout','uses'=>'ShopController@checkout']);
    });
    

    控制器:

    public function checkout()
    {
        dd(session($cart), session($id))
    }
    

    【讨论】:

      猜你喜欢
      • 2019-04-12
      • 2019-10-28
      • 1970-01-01
      • 2012-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-13
      • 2021-04-22
      相关资源
      最近更新 更多