即使数据库中尚不存在,它始终会说“此值已被使用”。

有时会说“此字段不能为空”

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);
        }
    }
?>


我现在无法注册或添加更多数据,与之前无法添加或注册的不同,我最近更新了Cakephp的版本,还添加了数据库中的性别,地址和年龄字段

我是新手,

最佳答案

我自己遇到了这个问题,对我来说,罪魁祸首是现场的“ isUnique”电话。我的问题是电子邮件字段,它不必唯一。

此外,在生产环境中更改模型后,必须清除缓存以使新提交的字段进入数据库。
“蛋糕缓存clear_all”。

我无法发表评论。

关于php - 使用cakephp3.4.13进行验证时会发生什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46684324/

10-12 00:48