页面在验证时保持重定向

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了页面在验证时保持重定向相关的知识,希望对你有一定的参考价值。

我正在尝试做的是在提交表单后进行基本验证,我使用vuejs和laravel,但在刀片本身中有一个表单可以提交。

提交后我们进入控制器验证用户发送的东西,现在这里是其中一个输入为空的问题,然后页面进入重定向循环,由ERR_TOO_MANY_REDIRECTS产生。

我们需要返回的刀片文件是“joborder / create”,我们可以发送到store函数来检查验证。我不得不使用create作为帖子,所以我覆盖了资源的默认值。

我不知道是什么导致循环。我正在使用laravel 5.2

任何帮助都会非常明显。

路线:

Route::resource('joborder' ,'JoborderController');
Route::POST('joborder/create','JoborderController@create');

刀片文件:

<div class="pubdiv col-md-12" >


        {!! Form::open(['action' => 'JoborderController@store','method' =>'POST']) !!}
              {{ csrf_field() }}
     <h3>basicinput</h3>
     <div class="row">
           <div class="col-sm-3 col-xs-6 pull-right">
               <div class="form-group">
                    {!! Form::label('company' , 'ComapnyName')!!} 
                    <input type="text" class="form-control " name="owner" value="{{$company_owner->name}}"  disabled>
           </div>
       <div class="form-group ">
                <input type='submit'  value="finish" name="submit" style="margin-top:4px" class="col-md-12 btn btn-t-primary btn-theme">

              </div>

          {!! Form::close() !!} <!-- end form post a job -->

控制器:

  if(session()->get('role_active') != 1){
      return redirect('thehood')->with('error','NO CAN DO');
  }else{
   $this->validate($request, [
           'alljobs_id' => 'required',
           'joborder_id' => 'required',
           'notes'=>'required',
           'state' =>'required',
           'city' => 'required',
           'type' => 'required',
           'salary' => 'required',
           'created_at' => 'required'
        ]);

   // after moving these remove the keys from request
   $alljobs_id = $request->alljobs_id;
   $joborder_id = $request->joborder_id;
   $request->request->remove('joborder_id');
   $request->request->remove('alljobs_id');

   $check_prof + $check_prof_custom  = 9;
   if(($check_prof + $check_prof_custom < 5 ) || ($check_behv + $check_behv_custom < 5 )){
     return redirect('joborder/create')->with('error','5 input is required!');
   }

  }

更新:我注意到我有post和get方法,这是错误的所以我做了一个名为created with s(s)的新函数

|        | POST      | joborder/crawltitle         |                  | AppHttpControllersJoborderController@crawltitle              | web           |
|        | GET|HEAD  | joborder/create             | joborder.create  | AppHttpControllersJoborderController@create                  | web           |
|        | POST      | joborder/creates            |                  | AppHttpControllersJoborderController@creates                 | web           |
|        | POST      | joborder/moveAttrib     

现在新功能如果验证失败,它会将我重定向到404页面,但我的地址栏是/ joborder / creates /

答案

您的问题是您的资源上有一个方法GET

Route::resource('joborder' ,'JoborderController');

当您调用重定向函数redirect('joborder/create')时,您将使用参数create重定向到上面的资源。

试试redirect('joborder')吧。

希望能帮助到你。

以上是关于页面在验证时保持重定向的主要内容,如果未能解决你的问题,请参考以下文章

在 Laravel 5 中进行身份验证后重定向

302 登录重定向后被 IE 删除的 URL 片段

重定向时如何在 Safari 中保留 uri 片段?

为啥我的 LDAP 重定向脚本对一个用户失败?

链接中的 URL 片段和 JSF 中的 ajax 重定向

重定向到新页面时如何使 <li> 保持突出显示?