我有一个包含文件上传表单的简单页面。 我在控制器中验证它并在出现问题时在视图中返回错误。不幸的是,即使我没有提交表单,也会显示有错误的警报(没有错误时为空警报)。有人可以告诉我如何以更好的方式做到这一点吗?
表单+错误显示:
<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) { } }
我只是希望此警报显示何时出现任何错误......
我尝试了什么,如果(isset($ errors))和!空但是它没有帮助
答案 0 :(得分:2)
您正在检查的$errors
对象未评估为FALSE
,但TRUE
因为它是一个对象(ViewErrorBag
)。这会导致if
检查通过,但仍会在first()
来电时爆炸
您要做的是确保错误包中有任何错误
请尝试以下方法:
@if($errors->any())
<script>alert('{{$errors->first()}}');</script>
@endif