【发布时间】:2019-06-07 02:31:31
【问题描述】:
我有一个 Vue 表单,可让用户为其个人资料添加工作经验。 用户可以通过单击按钮添加额外的体验。单击该按钮将添加一个带有新输入字段的新项目。我无法添加整个脚本,因为它已经很大了。但这里有一个例子给你一个想法:
<div class="item">
<div class="row">
<div class="form-group col-md-6">
<label class="form-label">Title</label>
<input type="text" name="experiences[0][title]" class="form-control">
</div>
<div class="form-group col-md-6">
<label class="form-label">Institution</label>
<input type="text" name="experiences[0][institution]" class="form-control">
</div>
</div>
<div class="row">
<div class="col-md-12">
<textarea name="experiences[0][comments]" class="form-control"></textarea>
</div>
</div>
</div>
<div class="item">
<div class="row">
<div class="form-group col-md-6">
<label class="form-label">Title </label>
<input type="text" name="experiences[1][title]" class="form-control">
</div>
<div class="form-group col-md-6">
<label class="form-label">institution </label>
<input type="text" name="experiences[1][institution]" class="form-control">
</div>
</div>
<div class="row">
<div class="col-md-12">
<textarea name="experiences[1][comments]" class="form-control"></textarea>
</div>
</div>
</div>
在每个元素之后都有一个按钮来添加新行。这工作正常,但我有一些验证问题。
如果其中一个字段有值,我只想验证这些字段。例如:
如果experiences[0][institution] 有值,则需要experiences[0][title] 和experiences[0][comments]。
这必须在每个订单中都有效。如果title 有值,则需要其他字段。
我真的无法找到一种方法来验证这一点。这是我的验证规则:
$this->validate(request(), [
'experiences.*.title' => 'required_if:experiences.*.institution,null',
'experiences.*.institution' => 'required_if:experiences.*.title,null',
]);
这里的问题是它根本无法验证。我不知道如何制定一条规则,如果字段 X 有值,则需要 Y 和 Z。
希望这里的任何人都可以帮助我找到解决方案! :)
【问题讨论】:
标签: php laravel vue.js laravel-5.7