Thanks for your answer duRqoo, see below: On Feb 3, 11:25 am, duRqoo <[EMAIL PROTECTED]> wrote: > Hello Benjamin, this should work: > > 'password' => array( > 'notNull' => array( > 'rule' => array('custom', VALID_NOT_EMPTY),
I though constant rules were deprecated in cake 1.2. especially this one has been replaced by allowEmpty (I am trying to be as much compatible as I can with 1.2). > 'required' => true, > 'message' => 'Please enter a password.' > ), > > 'between' => array( > 'rule' => array('between', 4, 12), > 'message' => 'Please check the number of characters in your > password.' > ) > > allowEmpty defaults to false so u don't need to specify it unless u > want to change it. I think allowEmpty and required options are checked > before the rule specification. So if allowEmpty is false and u submit > no data, cake won't check the rule because validation will return > false anyway. > > When you are using multiple validation rules per field, cake will > check all of those rules. That means, in your case, if your first rule > fails, your second rule will fail too and u'll get 'between' rule > error msg even when the password was empty. If you want to change this > behaviour you can simply add 'last'=>true option to desired rules, > which will force cake to stop further validation for certain field if > one of them invalidates. Yes, it is not showing in the given example but I agree with you and it is in my code already. In any case this is all a bit of DIY, hack I just wonder if there is proper way to do it. But I have been debugging validates for a couple of hours now and it is just not going to work unless 'rule' is declared to something that always return true (in my case I have used rule => array('custom' , '/.*/') ) to avoid using constant rules. What happend is that if you put your keywords outside a declared rule and dont' declare 'rule' ,validates assumes 'rule' exists an overwritte $validator array with array('rule', $validator) but the key does not exist so it is set to false and it all breaks down... The other scenario is to put them into a rule declaration but again if 'rule' is not defined it is default to 'blank' which is not very helpful. There should be a way of testing required and allowEmpty without having to declare a specific rule. Cheers Benjamin > > Cheers. > > On 3. Feb, 11:06 h., cisbrh <[EMAIL PROTECTED]> wrote: > > > Hi everybody, > > first of all thank you for the really good work you've doing on cake. > > I've used it 2 years ago for a massive application and I had to write > > my own postgresql layer... The work done since then especially on 1.2 > > is amazing. > > Anyway. I am trying to use multiple validation rules (1.2) with > > allowEmpty and required but I just can't get it working. > > I've look at the sources and it looks like the 2 keys must be included > > in their own rule declaration ie: > > 'password' => array( > > 'notNull' =>array( > > 'allowEmpty' => false, > > 'required' => true, > > 'message' => 'Please enter a password.' > > ), > > 'between' => array( > > 'rule' => array('between', 4, 12), > > 'message' => 'Please check the number of > > characters in your > > password.' > > )..... > > > But that does not work because model will default the keywords value > > for 'rule' to 'blank' !!! So what value should I give to 'rule'. > > If I put allowEmpty and required outside a rule declaration it breaks > > completely ie: > > 'password' => array( > > 'allowEmpty' => false, > > 'required' => true, > > 'message' => 'Please enter a password.', > > 'between' => array( > > 'rule' => array('between', 4, 12), > > 'message' => 'Please check the number of > > characters in your > > password.' > > )..... > > > so I am a bit stuck. > > I guess I could use a custom rule which always return true and let > > required and allowEmpty to invalidate if needed but surely there is a > > better way ? > > Thanks in advance. > > Benjamin --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Cake PHP" group. To post to this group, send email to cake-php@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/cake-php?hl=en -~----------~----~----~----~------~----~------~--~---