gpt4 book ai didi

validation - Cakephp-3 条件 notEmpty 验证行为

转载 作者:行者123 更新时间:2023-12-01 06:22:10 26 4
gpt4 key购买 nike

我需要对一个字段进行条件验证:if other_field = 1然后 this_field = notBlank .我找不到办法做到这一点。
我在表类中的验证器:

    public function validationDefault(Validator $validator) {
$validator->allowEmpty('inst_name');
$validator->add('inst_name', [
'notEmpty' => [
'rule' => 'checkInstName',
'provider' => 'table',
'message' => 'Please entar a name.'
],
'maxLength' => [
'rule' => ['maxLength', 120],
'message' => 'Name must not exceed 120 character length.'
]
]);
return $validator;
}

public function checkInstName($value, array $context) {
if ($context['data']['named_inst'] == 1) {
if ($value !== '' && $value !== null) {
return true;
} else {
return false;
}
} else {
return true;
}
}

这里的问题是,如果我注意到,在方法的开头,该字段允许为空,当输入的值为空时,Cake 不会通过我的任何验证,因为它是空的并且允许这样.如果我没有注意到该字段可以为空,Cake 只会在我的自定义验证之前运行“notEmpty”验证,并在它为空时始终输出“此字段不能为空”。

我如何让 Cake 通过我的条件“notEmpty”验证?

我确实尝试了具有相同结果的“开启”条件的验证规则。

最佳答案

成功测试,这可能会对您和其他人有所帮助。 CakePHP 3.*

$validator->notEmpty('event_date', 'Please enter event date', function ($context) {
if (!empty($context['data']['position'])) {
if ($context['data']['position'] == 1) {
return true; // <-- this means event date cannot be empty if position value is 1
}
}
});

在这个例子中 Event Date不能为空 if position = 1 .你必须把这个条件 if (!empty($context['data']['position']))因为 $context['data']['position']值只有在用户点击 后才会存在提交 按钮。否则你会得到 notice error .

关于validation - Cakephp-3 条件 notEmpty 验证行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32335497/

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