在laravel中一次显示所有错误消息我在视图中使用以下代码
<?php
$something = $errors->all();
if(!empty($something)):
?>
<div class = "alert alert-error">
@foreach ($errors->all('<p>:message</p>') as $input_error)
{{ $input_error }}
@endforeach
</div>
<?php endif; ?>
但是当我想在if条件中使用$errors->all()
代替$something
时,它会显示错误
无法在写上下文中使用方法返回值
虽然上面的代码工作正常,但我认为可能有更好的方法来检查是否存在任何错误消息,如果有,则显示它。
答案 0 :(得分:24)
是的,因为你不能使用任何方法作为空函数参数。来自php docs:
empty()仅检查变量,因为其他任何内容都会导致解析 错误。换句话说,以下内容不起作用: 空(修剪($名))。相反,使用trim($ name)== false。
什么类是$错误?如果它是你自己的类,你可以实现像'isEmpty()'这样的方法然后在if语句中使用:
if ($errors->isEmpty()) { ...
答案 1 :(得分:15)
在我的控制器中,我使用以下代码将验证错误传递给我的视图:
return Redirect::to('page')
->withErrors($validator);
然后,在我看来,我可以使用以下代码来检查是否存在错误:
@if($errors->any())
<div id="error-box">
<!-- Display errors here -->
</div>
@endif
您也可以使用if($errors->all())
。
请注意,当验证失败时,我们将Validator实例传递给 使用withErrors方法重定向。此方法将闪烁错误 消息到会话,以便它们在下一个可用 请求... [A] n $ errors变量将始终可用于所有 您的意见,每次请求,让您方便地承担 $ errors变量始终定义并且可以安全使用。