Let's say that your current validation rules in model Contact looks like:

    public $validate = array(
        'street' => array(
            'allowEmpty' => true,
            'rule' => array('minLength', 4),
            'message' => 'At least %s characters required',
        ),
        'postcode' => array(
            'allowEmpty' => true,
            'rule' => array('postal', null, 'us'),
            'message' => 'Invalid postal code',
        ),
        'city' => array(
            'allowEmpty' => true,
            'rule' => array('minLength', 2),
            'message' => 'At least %s characters required',
        ),
    );

then you can implement beforeValidate callback in this model:

    public function beforeValidate($options = array()) {
        $allowEmpty = empty($this->data[$this->alias]['details']);
        foreach (array('street', 'postcode', 'city') as $field) {
            $this->validate[$field]['allowEmpty'] = $allowEmpty;
        }
        return parent::beforeValidate($options);
    }

and in contact form where contact details are required just

echo $this->Form->input('Contact.details', array('type' => 'hidden', 
'value' => '1'));

-- 
Our newest site for the community: CakePHP Video Tutorials 
http://tv.cakephp.org 
Check out the new CakePHP Questions site http://ask.cakephp.org and help others 
with their CakePHP related questions.


To unsubscribe from this group, send email to
cake-php+unsubscr...@googlegroups.com For more options, visit this group at 
http://groups.google.com/group/cake-php

Reply via email to