首页 > 解决方案 > 控制器方法不起作用并且页面正在刷新而不是重定向到 laravel 中的给定路径

问题描述

我没有收到任何错误,它只是在该页面上刷新。在我给出重定向路径的地方不调用控制器方法。我的代码是:

刀片文件

 <form action="{{route('validate-promocode')}}" method="post">
                      @csrf
                    <input class="promo-input" id="code" type="text" onkeyup="this.value = this.value.toUpperCase();" name="code" placeholder="EG. APPLY HERE"><br>
                    <input type="hidden" name="_token" value="{!!csrf_token()!!}">
                    <button id="save" type="submit" class="apply-promo">Apply Promo Code</button>
                    </form>  

路由文件

Route::post('/validade-code', 'PromoController@validateCode')->name('validate-promocode');

控制器文件

public function validateCode(Request $request){
      if (Gate::allows('isUser')) {
          $ip = $request->input('code');
          dd($promo);
        $promo = Promo::where('code','=', trim($ip))->first();

        if(!empty($promo)){
          $dataamountMonthly =  40000  - (($promo->discount_percentage * 40000) / 100);
          $dataamountYearly  =  300000  - (($promo->discount_percentage * 300000) / 100);

          if($dataamountMonthly == 0 || $dataamountYearly == 0){


            return view('paymet.subscription-success');
        }
          $data = array(
              'dataamountMonthly' => $dataamountMonthly ,
              'dataamountYearly'  => $dataamountYearly,
              'code' => $ip
          );

          return view('payment.startPromoCode',$data);

        }else{
          $data = array(
              'error' => 'Something went wrong, please try again'
          );
         return redirect()->back()->with($data);
        }
      }
  }

我不知道我错过了什么,任何帮助都会得到帮助。

标签: laravelpostcontrollerlaravel-blade

解决方案


已解决
有时您可能希望将用户重定向到他们之前的位置,例如当提交的表单无效时。您可以通过使用全局后退辅助函数来做到这一点。由于此功能使用会话,请确保调用 back 函数的路由正在使用 Web 中间件组或已应用所有会话中间件


推荐阅读