Пользовательская проверка в CakePHP - PullRequest
1 голос
/ 30 января 2011

Мне нужна помощь, как разработать правило проверки для следующего случая ...

моя веб-форма cakephp содержит несколько динамически генерируемых флажков. конечный пользователь должен выбрать хотя бы один из них.

ни один из этих флажков не является полями в таблице базы данных.

Можете ли вы помочь мне, как создать правило проверки для этого?

пытался сделать, добавив в модель что-то вроде

var $validate = array(
    'topic' => array(
      'rule' => 'myRule',
      'message' => 'Check on at least one checkbox'
    )
)

function myRule() {
  //just give me false to know it works...
  return false;
}

также, в этом случае, как разместить сообщение об ошибке под этими флажками?

tnx in adv!

1 Ответ

0 голосов
/ 31 января 2011

При использовании пользовательских правил проверки в CakePHP, если вы вызываете функцию вместо RegEx, это должен быть первый параметр в ассоциативном массиве, поэтому он будет выглядеть примерно так.

var $validate = array(
    'topic' => array(
      'rule' => array('myRule'),
      'message' => 'Check on at least one checkbox'
    )
)

function myRule() {
  //just give me false to know it works...
  return false;
}

Кроме того, если вы хотите включить аргументы функции, вы должны добавить их в качестве дополнительных параметров в массив правил.

var $validate = array(
    'topic' => array(
      'rule' => array('myRule', 10),
      'message' => 'Check on at least one checkbox'
    )
)

function myRule($id) {
if (array_shift($id) = 10) {
    return false;
    }
}

http://book.cakephp.org/view/152/Adding-your-own-Validation-Methods

...