【问题标题】:Laravel dosen't clear $errors variable when i refresh the page当我刷新页面时,Laravel 不会清除 $errors 变量
【发布时间】:2020-06-25 14:38:40
【问题描述】:

当我在 laravel 上提交表单并检查验证时,laravel 将 $errors 返回到我的页面并通过底部的代码显示它,它会显示错误,但是当我刷新页面时,此错误仍然存​​在。

@if (count($errors) > 0)
<div class="margin-top-10">
    <div class="alert alert-danger">
        <ul>
            @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
</div>
@endif

我在浏览器上也看到了这个错误

Failed to load resource: the server responded with a status of 500 (Internal Server Error)

这是我的验证码

$rules = array(
    'first_name'=>'required|alpha|max:255',
    'last_name'=>'required|alpha|max:255',
    'email'=>'required|email|unique:users,email',
    'username'=>'required|unique:users,name|max:255',
);
$messages = array(
    'first_name.required'=>'error message',
    'first_name.alpha'=>'error message',
    'first_name.max'=>'error message',
    'last_name.required'=>'error message',
    'last_name.alpha'=>'error message',
    'last_name.max'=>'error message',
    'email.required'=>'error message',
    'email.email'=>'error message',
    'email.unique'=>'error message',
    'username.required'=>'error message',
    'username.max'=>'error message',
    'username.unique'=>'error message',
);
$this->validate($req,$rules,$messages);

【问题讨论】:

  • 如何设置验证错误?
  • 那 500 可能是个例外,检查你的日志
  • @Wader 我正在使用 laravel 默认值
  • @543310 你能发布你的验证/控制器代码吗?有很多方法可以将错误消息放入会话中。
  • @RDelorier 这是我的日志文件:mediafire.com/?f1pprctx6uxyzd5

标签: php validation laravel


【解决方案1】:

试试这样的:\Session::flush('errors');

@if (count($errors) > 0)
  <script>
    $(function () {
      $('#workerAppModal').modal('show');
    });
  </script>
  <div class="alert alert-danger">
      <strong>Whoops!</strong> There were some problems with your input.<br><br>
      <ul>
          @foreach ($errors->all() as $error)
              <li>{{ $error }}</li>
          @endforeach
      </ul>
  </div>
  @php
    \Session::flush('errors');
  @endphp
@endif

【讨论】:

    【解决方案2】:

    我在这里创建了示例,它在刷新时工作正常,它清除了消息:-

    Route::get('/formTest',function (){
        return view('testForm');
    });
    
    Route::post('/formSubmit',function (Request $request){
        if($request->get('uuids') === null){
            $message = [
                'required' => 'Name is required',
                'number'   => 'And It should be number'
            ];
        }else{
            dd($request->get('get'));
        }
        return redirect()->back()->withErrors(['uuids' => $message]);    
    })->name('submitForm');
    

    【讨论】:

      猜你喜欢
      • 2014-06-01
      • 1970-01-01
      • 2021-05-09
      • 1970-01-01
      • 1970-01-01
      • 2012-07-31
      • 1970-01-01
      • 2015-11-04
      • 1970-01-01
      相关资源
      最近更新 更多