【问题标题】:How to redirect to a post route如何重定向到发布路线
【发布时间】: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_onlinepayment_delivery 期望的参数。
  • 你应该考虑使用named routes
  • 您不能从 get 路由重定向到 post 路由。它根本不能只在服务器端完成。您将需要一些中间视图和一些客户端代码。
  • 我其实不能用这个 return redirect()->route('payment_online', ['paymode'=>request('paymode')]);因为第一条路线是提交一些存储在会话中的记录,而第二条路线是打开一个新页面
  • 如果你在同一个控制器中有(payment_onlinepayment_delivery)方法,你可以返回方法而不是返回路由

标签: laravel


【解决方案1】:

根据我的经验,如果您想重定向到 POST 路由,您的代码中可能存在一些逻辑错误,或者您错误地使用了 POST。但是,如果您确实需要这样做,this answer 可能会给您一些见解。

【讨论】:

    【解决方案2】:

    据我了解,您希望通过另一个处理根据条件发送的相同请求的函数来完成该过程

    如果是这样,您可以简单地调用该方法并传递请求。

    假设你有一个PaymentController,它有三个功能

    1. payment_online方法

    public function payment_online(Request $request){
      // some code
      return view('view1');
    }
    

    2. payment_delivery 方法

    public function payment_delivery (Request $request){
      // some code
      return view('view2');
    }
    

    你可以在3. resolve_booking方法中简单地做到这一点:

    public function resolve_booking(Request $request){
        $request->session()->put('paymode',request('paymode'));
    
        if(request('paymode') == 'Pay Online'){
            return $this->payment_online($request);
        }else{
            return  $this->payment_delivery($request);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2020-01-05
      • 1970-01-01
      • 2018-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多