cakephp un formulaire, plusieurs modèles, ne pas afficher les messages de validation d'un modèle
J'ai un formulaire d'inscription et je suis entrain de créer un dossier à la fois de l'Utilisateur et de l'Identité des tables (un utilisateur hasMany identités)
la forme ressemble à ceci
<?php echo $this->Form->create('User');?>
<fieldset>
<legend><?php __('Register'); ?></legend>
<?php
echo $this->Form->input('Identity.name');
echo $this->Form->input('Identity.surname');
echo $this->Form->input('User.username');
echo $this->Form->input('User.pass');
echo $this->Form->input('User.pass_confirm', array('type' => 'password'));
echo $this->Form->input('Identity.email');
?>
</fieldset>
<?php echo $this->Form->end(__('Submit', true));?>
Je reçois tous les messages d'erreur de validation pour User.*
champs mais Identity.*
champs sont affichés sans les messages.
les règles de validation:
Identité:
var $validate = array(
'name' => array(
'notempty' => array(
'rule' => 'notempty',
'required' => true,
'message' => 'Your name is required.'
)
),
'surname' => array(
'notempty' => array(
'rule' => 'notempty',
'required' => true,
'message' => 'Your surname is required.'
)
),
'email' => array(
'validateEmail' => array(
'rule' => 'validateEmail',
'required' => true,
'message' => 'The email seems invalid.'
),
'notempty' => array(
'rule' => 'notempty',
'message' => 'You have to enter an email address.'
)
),
);
Utilisateur:
var $validate = array(
'pass' => array(
'required' => array(
'rule' => array('custom','/^.*[0-9].*$/i'),
'message'=>'Password must contain numbers'),
'length' => array(
'rule' => array(
'minLength',8),
'message' => 'Password must be at least 8 characters long')
),
'pass_confirm' => array(
'required' => array(
'rule' => 'notempty',
'message' => 'You have to confirm the password'
),
'length' => array(
'rule' => 'validatePassword',
'message'=>'Your passwords don\'t match!' )
),
'username' => array(
'unique' => array(
'rule' => 'validateUniqueUsername',
'message' => 'Username is already taken, please choose a different one.'
),
'notempty' => array(
'rule' => 'notempty',
'message' => 'You have to choose a username.'
)
),
);
source d'informationauteur Elwhis
Vous devez vous connecter pour publier un commentaire.
hasMany
modèle de champs doivent être array (lorsqu'il est combiné avec le modèle parent), voir.0
ajoutée entre les noms de champUne réponse que j'ai trouvé était sur cette page beaucoup près le même problème. La solution était d'ajouter de la validation de l'attribut d'égouttage