如何在Laravel 5中的相关输入字段(而不是列表)旁边显示验证错误?

Mat*_*cki 14 php validation laravel laravel-5 laravel-5.1

默认解决方案很简单:

@if (count($errors) > 0)
<ul id="login-validation-errors" class="validation-errors">
    @foreach ($errors->all() as $error)
    <li class="validation-error-item">{{ $error }}</li>
    @endforeach
</ul>
@endif
Run Code Online (Sandbox Code Playgroud)

我可以在任何地方包含errors.blade.php.

有没有办法提取每个元素并将其显示在包含失败值的输入字段旁边?

我假设需要在每个输入旁边定义很多条件语句.我对吗?如何排序这个问题?你能举一个例子吗?

谢谢.

zor*_*orx 21

你可以使用这样的东西:

<div class="form-group {{ $errors->has('name') ? 'has-error' : ''}}">
    <label for="name" class="col-sm-3 control-label">Name: </label>
    <div class="col-sm-6">
        <input class="form-control" required="required" name="name" type="text" id="name">
        {!! $errors->first('name', '<p class="help-block">:message</p>') !!}
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

  • 有可能的。foreach ($errors-&gt;get('email') as $message) { // } (2认同)

Dee*_*apa 5

@Zorx 给出了正确的解决方案。但是如果有多个错误并且您想一次显示所有错误怎么办。

根据您可以使用的文档:

检索字段的所有错误消息

foreach ($errors->get('email') as $message) {
//
}
Run Code Online (Sandbox Code Playgroud)

如果您正在验证数组表单字段,您可以使用 * 字符检索每个数组元素的所有消息:

foreach ($errors->get('attachments.*') as $message) {
//
}
Run Code Online (Sandbox Code Playgroud)

检索所有字段的所有错误消息

foreach ($errors->all() as $message) {
    //
}
Run Code Online (Sandbox Code Playgroud)