0

我有一个重复字段,允许用户使用https://github.com/DubFriend/jquery.repeater包一次上传多个文件。

我有一个验证表单请求,它有效,但在视图中我不知道如何仅突出显示存在错误的字段。在下图中,只有第一行包含错误,但两行都突出显示。

在此处输入图像描述

在我的表单请求中,我有以下内容:

public function rules()
{
    return [
        ...
        'task_files.*.file_path' => 'required|max:10000',
        'task_files.*.title' => 'required|min:2|max:255',
        'task_files.*.file_description' => 'required|min:2|max:255',
        'task_files.*.file_type' => 'required|numeric',
    ];
}

在我看来,我有:

<div class="form-group{{ $errors->has('task_files.*.file_path') ? ' has-danger' : '' }}">
    {{ Form::file('file_path', ['class' => 'file_input'])}}
    @if ($errors->has('task_files.*.file_path'))
        <div class="form-control-feedback">
            {{ $errors->first('task_files.*.file_path') }}
        </div>
    @endif
</div>

查看 ViewErrorBag 类,我看到失败字段的键存在,但如何将其合并到我的视图中?

"task_files.0.file_description" => array:1 [▼
  0 => "The file description is required"
]

编辑:当验证失败时,字段不是由 Blade 模板中的循环创建的。我正在使用$repeater.setList()Laravelold()辅助函数来设置数据。

4

1 回答 1

0

而不是检查是否

$errors->has('task_files.*.file_path')

在您渲染的每个文件输入的模板中,进行类似的检查,但使用文件输入的索引而不是星号:

$errors->has('task_files.0.file_path') //for first file input
$errors->has('task_files.1.file_path') //for second file input
于 2017-11-02T02:28:38.767 回答