需要多个值中的一个

问题描述 投票:0回答:1

我有一个包含5个布尔列的表。我想强迫用户选择至少一个。有没有办法在表PHP中使用CakePHP $validator对象?

我可以很容易地在控制器中实现这一点,但利用内置的东西似乎没有错。文档中没有任何内容突然出现在我面前。 。

控制器示例:

if (false === $val1 === $val2 === $val3 === $val4 === $val5){
   //return with error
}
cakephp cakephp-3.x cakephp-3.7
1个回答
1
投票

这似乎是规则的情况,而不是验证。

public function buildRules(RulesChecker $rules) {
    $rules->add(function (EntityInterface $entity, Array $options) {
        return $entity->val1 || $entity->val2 || $entity->val3 || $entity->val4 || $entity->val5;
    }, 'selectOne', [
        'errorField' => 'val1',
        'message' => __('You must select at least one of these fields.'),
    ]);

    return $rules;
}
© www.soinside.com 2019 - 2024. All rights reserved.