Amit's code won't work as-is, because the keys are being duplicated.

For example, try this in an example script:

$test = array(
  'Bacon' => array('Yummy'),
  'Bacon' => array('Delicious')
);

print_r($test);

You'll see that the first declaration has disappeared. You can only
use a key once in an array.

For validation purposes, do it like this:

var $validate = array(
    'email' => array(
        array(
            'rule' => array('email', 'isUnique'),
            'required' => true,
            'allowEmpty' => false,
            'on' => 'create',
            'message' => 'Your Error Message'
        ),
        array(
            'rule' => array('email', 'isUnique'),
            'allowEmpty' => false,
            'on' => 'update',
            'message' => 'Your Error Message'
        )
    ),
);

This way both rules will be observed as there are no duplicate keys.

hth
grigri

On Nov 23, 4:54 am, Dave <make.cake.b...@gmail.com> wrote:
> When you put it like that its so easy to understand. I read the
> cookbook but your example is 100 times better and clearly explained
> when you lay it out like that. thank you very much. that looks like
> exactly what I need.
>
> Good looking out!
>
> Thanks,
>
> Dave
>
> On Nov 23, 1:29 am, Amit <a...@amitvaria.com> wrote:
>
> > Take a look at the CakeBook 
> > -http://book.cakephp.org/view/127/One-Rule-Per-Field
>
> > var $validate = array(
> >     'email' => array(
> >         'rule' => array('email', 'isUnique'),
> >         'required' => true,
> >         'allowEmpty' => false,
> >         'on' => 'create',
> >         'message' => 'Your Error Message'
> >     ),
> >     'email' => array(
> >         'rule' => array('email', 'isUnique'),
> >         'allowEmpty' => false,
> >         'on' => 'update',
> >         'message' => 'Your Error Message'
> >     ),
> >     'url' => array(
> >         'rule' => array('url', 'isUnique'),
> >         'required' => true,
> >         'allowEmpty' => false,
> >         'on' => 'create',
> >         'message' => 'Your Error Message'
> >     ),
> >     'url' => array(
> >         'rule' => array('url', 'isUnique'),
> >         'allowEmpty' => false,
> >         'on' => 'update',
> >         'message' => 'Your Error Message'
> >     ),
>
> > );
>
> > On Nov 22, 8:45 pm, Dave <make.cake.b...@gmail.com> wrote:
>
> > > I cant figure out how to do this.
> > > I have 2  fields, an email and a url, both are required and need to be
> > > unique when a user wants to update thier info.
>
> > > If the user is only updating 1 field the other required will fail
> > > because its required. If they enter in the email field their current
> > > email because it says required it will come back invalid because its
> > > no longer unique. Vice versa for the url.
>
> > > They may only want to change one of the 2 fields information but how
> > > can you get around this? I dont want them entering in anything thats
> > > not valid for email / url so i need the validation rules. They are
> > > both required but how can they edit just 1 field?
>
> > > Thanks,
>
> > > Dave
>
>

--

You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to cake-...@googlegroups.com.
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?hl=en.


Reply via email to