Assuming you are using 1.2
I have created this snippet in the model. Could be but in app_model if
it is required.

//checks to see if the given fieldname is unique with the model
        function checkUnique($data, $fieldName) {

        $valid = false;
                $this->recursive = -1;
        if(isset($fieldName) && $this->hasField($fieldName))
        {
            $valid = $this->isUnique(array($fieldName => $data));
        }
        return $valid;
   }


the validate array within the model can be as follows. Notice the
multiple validation rules for email.
The on=> 'create' only validates this rule on an insert into the
database.
The message will automagically appear in the view. No need for the
tagErrorMsg. just ensure you are using the html Helper.


var $validate = array(
                    //password must be at least 6 characters and consist of only
alphanumeric
                    'password' => array(
                                'rule'          => array('custom', 
'/[a-z0-9]{6,}$/i'),
                                'message'       => 'Only letters and numbers, 
min 6 characters'
                         ),
                         //email address must exist and must be a unique value 
within the
Customers.email field.
             'email' => array(
                                'email_valid' => array(
                                'rule' => 'email',
                                'message' => 'Valid email address required',
                                        ),

                                'email_unique' => array(
                                'rule' => array('checkUnique', 'email'),
                                'message' => 'Email address already used.',
                                                'on' => 'create'
                                )


                        ),//end email



On Apr 20, 4:21 pm, Chez17 <[EMAIL PROTECTED]> wrote:
> I am having issues making sure that a field is unique. I am beginner
> so please go easy on me. Right now, I am trying to create a simple
> login system where the user name name and profile name have to be
> unique. I have been cutting and pasting some stuff together and I
> can't seem to get this to work out.  Here is a sample of my 'create'
> view:
>
> <label for="profile">Profile Name:</label>
> <?php echo $html->password('User/profile', array('size' => 20)); ?>
> <?php echo $html->tagErrorMsg('User/profile', 'You need to enter a
> profile name.') ?>
>
> Now, here is my validation function:
>
> var $validate = array(
>         'username'  => VALID_NOT_EMPTY,
>         'password'   => VALID_NOT_EMPTY,
>         'profile'   => VALID_NOT_EMPTY
>         );
> When I tried use custom rules and try to make the validate array check
> for uniqueness, my message gets lost. It will keep displaying the
> 'You need to enter a profile name' error message, not the one I
> specify in the validate array. So now I am trying to do some custom
> validation, but I don't understand the find() function. I couldn't
> find one concrete example of how to use it. I am too much of a
> beginner to understand the API that they put out.
>
> I would like to know how to solve my problem both ways. How can I get
> the message from the validate function to my view? Also, how can I
> write a custom find() statement so I can check if a profile name is
> already in the database?
>
> Thanks for your time,
> Da

ve

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to