gpt4 book ai didi

php - Laravel 5.7 验证带星号的字段,required_if

转载 作者:可可西里 更新时间:2023-10-31 22:50:21 28 4
gpt4 key购买 nike

我有一个 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 是必需的。

希望这里的任何人都可以帮助我找到解决方案! :)

最佳答案

如 Azeame 所说,制定自定义验证规则并检查所有值是否已填充或全部为空。以下内容:

public function passes($attribute, $value)
{
$required = ['title','institution','comments'];

$experience = collect($value)->reject(function ($item, $key) {
return empty($item);
});

if (count($experience) == 0) {
return true;
}

foreach ($required as $field) {
if ( !$experience->has($field)) {
return false;
}
}

return true;
}

也许有更好的方法,但这应该可行。

关于php - Laravel 5.7 验证带星号的字段,required_if,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54158879/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com