Folks, I'm trying to ensure at least one of two fields (last_name or email) is being populated. Each field also has multiple rules. I'm using CakePHP version 2.4.2.
The problem I have at the moment, after multiple permutations of updating and/or moving around the use 'last', 'allowEmpty', 'required', etc, is that the fields just aren't validating at all, or aren't executing all the rules when a field is populated. Any advice on how to modify the code below to achieve the following behaviour is much appreciated: 1. One of the two fields must be populated; 2. The other rules attached to each field must validate as well (i.e. if a last name is passed, then it must be between 2 and 45 chars and alphanumeric only) Here's the model code: public $validate = array( 'last_name'=> array( 'needOne' => array ( 'required' => FALSE, 'allowEmpty' => TRUE, 'last' => TRUE, 'rule' => array('checkOne','last_name'), 'message' => 'You must enter at least a contact name or email address.' ), 'alphaNumeric' => array( 'rule' => 'alphaNumeric', 'message' => 'Alphabets and numbers only' ), 'between' => array( 'rule' => array('between', 2, 45), 'message' => 'Between 2 to 45 characters' ) ), 'email' => array( 'needOne' => array ( 'required' => FALSE, 'allowEmpty' => TRUE, 'last' => TRUE, 'rule' => array('checkOne','email'), 'message' => 'You must enter at least a contact name or email address.' ), 'emailAddress' => array ( 'last' => TRUE, 'rule' => array('email', FALSE), 'message' => 'A valid Email address is required' ) ) ); // Ensure at least the last name or email field value is provided function checkOne() { if(!empty($this->data[$this->User]['last_name']) || !empty($this->data[$this->User]['email'])){ return true; } else { return false; } } Thanks in advance! -- Like Us on FaceBook https://www.facebook.com/CakePHP Find us on Twitter http://twitter.com/CakePHP --- You received this message because you are subscribed to the Google Groups "CakePHP" group. To unsubscribe from this group and stop receiving emails from it, send an email to cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.