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