Laravel - 显示错误出错

Laravel - displaying errors goes wrong

我有一个带有文件上传表单的简单页面。 我在控制器中验证它并在出现问题时在视图中返回错误。不幸的是,即使我没有提交表单,也总是显示有错误的警报(没有错误时为空警报)。有人可以告诉我如何以更好的方式做到这一点吗?

表单+错误显示:

<form enctype="multipart/form-data" method='POST' action='/add_image'>
    {{ csrf_field() }}
    <p>Wybierz zdjęcie do dodania:</p>
    <input type="file" onchange='loadFile(event)' name='fileUpload' id='fileUploadInput'> <br> <br>
    <img id="uploadPreview"> <br> <br>
    <input type='submit' name='submit' id='fileUploadSubmit'>
</form>


    @if($errors)

       <script>alert('{{$errors->first()}}');</script>

    @endif

正在验证:

 if($request->hasFile('fileUpload')){
            $image = $request->file('fileUpload');

            $validator = Validator::make($request->all(), [
               'fileUpload' => 'required|image',
            ])->validate();

        }

$errors var_dump 无错误输出:

object(Illuminate\Support\ViewErrorBag)#147 (1) { ["bags":protected]=> array(0) { } }

我只想在出现任何错误时显示此警报...

我还尝试了 if(isset($errors)) 和 !empty 但它没有帮助

您正在检查的 $errors 对象的计算结果不是 FALSE,而是 TRUE,因为它是一个对象(ViewErrorBag)。这使得 if 检查通过,但仍然在 first() 调用中爆炸。
你要做的是确保错误包中有任何错误。
请尝试以下操作:

@if($errors->any())
  <script>alert('{{$errors->first()}}');</script>
@endif