2010-11-30 19 views
0

J'ai une application qui utilise le composant Auth. Les membres de Logedin peuvent modifier leurs données tant que je n'ai pas de règles de validation dans le modèle des utilisateurs. Lorsque j'ajoute array $ validate dans le modèle connecté, les utilisateurs ne peuvent pas soumettre de données à la base de données. J'utilise une table mysql nommée users.Authentification CakePHP et validation

En d'autres termes, cela fonctionne, mais je n'ai pas la validation en vue de votre inscription

 
<?php 
class User extends AppModel { 
var $name = 'User'; 
?> 

Mais quand j'ajoute la validation comme ceci:

 
<?php 
class User extends AppModel { 
var $name = 'User'; 
var $validate = array(
    'email' => array(
    'email' => array('rule' => 'email','required'=>true,'message' => 'Enter proper mail') 
) 
); 
} 
?> 

validation dans les travaux de vue d'inscription, mais les utilisateurs en secret zone ne peut pas entrer de données dans la base de données.

+0

quelle version utilisez-vous? 1.2 ou 1.3? est-ce qu'il lance une erreur ?? – RSK

+0

J'utilise le cadre de gâteau v 1.2 –

Répondre

1

Ma conjecture est: Cela se produit parce que vous avez défini required à true.

Ceci applique la règle selon laquelle, lorsque les données soumises du modèle Utilisateur sont soumises, la clé email doit être définie. Par conséquent, cela fonctionne dans votre formulaire d'inscription qui a évidemment la clé e-mail. D'un autre côté, le formulaire que vous utilisez dans la zone secrète n'a probablement pas de champ email.

enlèverait juste la condition « nécessaire » de votre règle de validation:

'email' => array(
    'email' => array(
     'rule' => array('email'), 
     'message' => 'Please enter a valid email', 
    ), 
), 

Laissez-moi savoir si cela fonctionne pour vous.

+0

Vous avez raison. Il est nécessaire d'enlever le paramètre requis. Merci RabidFire. –

+0

> D'un autre côté, le formulaire que vous utilisez dans la zone secrète n'a probablement pas de champ email. C'est correct aussi. –

+0

Je l'ai résolu comme ceci http://pastebin.com/WgeLhqXB maintenant j'ai la validation de contrôleur unique dans l'inscription. –