2011-01-30 3 views
1

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

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

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

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

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

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!

ответ

0

С правилами пользовательской проверки в 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

+2

если (array_shift ($ ID) == 10) ... !!! – mark

+0

знак правильный, извинения. Первым аргументом функции для myRule будет значение формы. – Stoosh

+0

Да, я пробовал с этим еще до того, как я разместил свой вопрос, так что у меня все еще есть такая же проблема ... он работает так же, как обычная проверка не определена вообще. – user198003

Смежные вопросы