我的情况是这样的:
我有添加方法。如果方法运行,它将调用route
这样的代码:
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']);
});
它将在商店控制器中调用结账方法
这样的方法:
public function checkout($cart=null, $id=null)
{
dd($cart, $id)
}
它有效
如果代码执行,它将显示$cart
和$id
但它使用get
我想使用post
因为如果使用get
数据购物车会在网址中找到
我该如何解决这个问题?
所以数据在网址中不可见
似乎这种情况必须使用post
但在这种情况下,我仍然混淆使用post
答案 0 :(得分:1)
你无法使用POST重定向,这是一个http限制,而不是Laravel。
也许最新的解决方案是flash the data you need to the session:
控制器:
const { query } = require('./async-db')
async function selectAllData( ) {
let sql = 'SELECT * FROM my_table'
let dataList = await query( sql )
return dataList
}
async function getData() {
let dataList = await selectAllData()
console.log( dataList )
}
getData()
路线:
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']);
});