Требовать одно из нескольких значений - PullRequest
0 голосов
/ 17 апреля 2019

У меня есть таблица с 5 логическими столбцами. Я хочу заставить пользователя выбрать хотя бы один. Есть ли способ сделать это, используя объект CakePHP $validator в таблице PHP?

Я могу выполнить это в контроллере достаточно просто, но использование встроенных функций кажется менее неправильным. Ничто в документации не выскакивает на меня. .

Пример контроллера:

if (false === $val1 === $val2 === $val3 === $val4 === $val5){
   //return with error
}

1 Ответ

1 голос
/ 17 апреля 2019

Казалось бы, это ситуация для правила, а не для проверки.

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;
}
...