2017-09-05 124 views
0

我的情况是这样的:如何通过邮件发送数据,通过控制器laravel调用路由?

我有添加方法。如果方法来看,这将呼叫路由

这样的代码:

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'=>'[email protected]']); 
}); 

它将调用验证方法在店铺控制器

像这样的方法:

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

它的工作原理

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

的结果,但它使用get

我想改变它使用post

因为如果使用get的数据手册在网址中查找

我该如何解决这个问题?

所以数据不是在URL

可见似乎这种情况下必须使用post

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

回答

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'=>'[email protected]']); 
}); 

控制器:

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