Il est toujours dit "Cette valeur est déjà utilisée" même si elle n'est pas encore présente dans la base de données.Qu'arrive-t-il à ma validation avec cakephp3.4.13?
Parfois, il dira: « Ce champ ne peut être vide »
public function validationDefault(Validator $validator)
{
$validator
->integer('id')
->allowEmpty('id', 'create');
$validator->requirePresence('username', 'Please enter username.');
$validator
->requirePresence('password', 'create')
->notEmpty('password', 'You must enter a password', 'create')
->add('password', [
'length' => [
'rule' => ['minLength', 8],
'message' => 'Passwords must be at least 8 characters long.',
]
]);
$validator
->requirePresence('age', 'create')
->notEmpty('age');
$validator
->requirePresence('address', 'create')
->notEmpty('address');
$validator
->email('email')
->requirePresence('email', 'create')
->notEmpty('email');
$validator
->requirePresence('gender', 'create')
->notEmpty('gender');
return $validator;
}
public function buildRules(RulesChecker $rules)
{
$rules->add($rules->isUnique(['username']));
$rules->add($rules->isUnique(['email']));
return $rules;
}
<?php
namespace App\Model\Entity;
use Cake\Auth\DefaultPasswordHasher;
use Cake\ORM\Entity;
/**
* User Entity.
*/
class User extends Entity
{
protected $_accessible = [
'*' => true,
'id' => false
];
protected function _setPassword($password)
{
return (new DefaultPasswordHasher)->hash($password);
}
}
?>
Je ne peux pas enregistrer ou ajouter des données maintenant, à la différence avant que je puisse ajouter ou vous inscrire, je récemment mis à jour la version de mon CakePHP, je a également ajouté, le sexe, l'adresse et les champs dans la base de données âge
Im un débutant,
Qu'y a-t-il dans vos règles de construction? – rrd
J'ai ajouté le code ci-dessus bro @rrd –
Les messages d'erreur signifie que vous essayez d'enregistrer un enregistrement avec le même nom d'utilisateur que vous avez déjà dans la base de données – rrd