【发布时间】:2021-09-28 20:57:32
【问题描述】:
我想使用重定向而不是 get 重定向到 post 路由。
下面是我的代码
public function resolve_booking(Request $request){
$request->session()->put('paymode',request('paymode'));
if(request('paymode') == 'Pay Online'){
return redirect()->route('payment_online');
}else{
return redirect()->route('payment_delivery');
}
}
Web.php
Route::post('/payment_online',[App\Http\Controllers\MyMessengerController::class, 'payment_online'])->name('payment_online')->middleware('auth');
Route::post('/payment_delivery',[App\Http\Controllers\MyMessengerController::class, 'payment_delivery'])->name('payment_delivery')->middleware('auth');
如您所见,它是一个 post 路由,并且重定向使用 get 路由,我怎样才能使重定向使用 post 路由
【问题讨论】:
-
也许你可以这样做?
return redirect()->route('payment_online', ['paymode'=>request('paymode')]);有点取决于payment_online和payment_delivery期望的参数。 -
你应该考虑使用named routes
-
您不能从 get 路由重定向到 post 路由。它根本不能只在服务器端完成。您将需要一些中间视图和一些客户端代码。
-
我其实不能用这个 return redirect()->route('payment_online', ['paymode'=>request('paymode')]);因为第一条路线是提交一些存储在会话中的记录,而第二条路线是打开一个新页面
-
如果你在同一个控制器中有(
payment_online和payment_delivery)方法,你可以返回方法而不是返回路由
标签: laravel