验证规则在cakePHP中不起作用

时间:2011-09-28 17:51:40

标签: cakephp cakephp-appmodel

我有一个注册页面,在这个注册页面中,用户需要填写一些兴趣,兴趣值是从名为interest.php的模型中调用的,所有值都是通过并按预期保存。 / p>

与用户模型的关系是

var $hasAndBelongsToMany = array(
        'Interest' => array(
            'className' => 'Interest',
            'joinTable' => 'users_interests',
            'foreignKey' => 'user_id',
            'associationForeignKey' => 'interest_id',
            'unique' => true,
            'conditions' => '',
            'fields' => '',
            'order' => '',
            'limit' => '',
            'offset' => '',
            'finderQuery' => '',
            'deleteQuery' => '',
            'insertQuery' => ''
        )

每当我在interest.php中添加验证规则时,复选框旁边会显示所需的小星号,但它根本没有验证

<label for="InterestInterestId">Interests</label>
<input type="hidden" value="" name="data[Interest][interest_id]">
<div class="checkbox">
<input id="InterestInterestId8" type="checkbox" value="8" name="data[Interest][interest_id][]">
<label for="InterestInterestId8">Interest 1</label>
</div>
<div class="checkbox">
<input id="InterestInterestId1" type="checkbox" value="1" name="data[Interest][interest_id][]">
<label for="InterestInterestId1">Interest2</label>
</div>

在我的视图中,我调用了多个这样的复选框

 echo $form->input('Interest.interest_id', array('label' => __l('Interests'), 'multiple' => 'checkbox'));

这是我在interest.php中的验证规则

$this->validate = array(

            'interest_id' => array(
                'rule' => array(
                    'equalTo',
                    '1'
                ) ,
                'message' => __l('Please select some interests')
            )
        );

我在这里做错了什么,或者遗漏了什么,任何帮助都会受到赞赏!!!!

1 个答案:

答案 0 :(得分:0)

借助bfavaretto

提供的此链接HABTM form validation in CakePHP找到答案

问题在于$this->User->Interest->set($this->data);

我忘了添加它