1

我正在将我的 cakephp 代码从 2.6.7 升级到 3.1.5。旧版本代码工作正常:

public $validate = array(
        'email' => array(
            'rule' => 'isUnique',
            'required' => true,
            'message' => 'Email already exist'
        ),
        'password' => array(
            'rule' => array('minLength', '6'),
            'message' => 'password must be minimum 6 characters long'
        )
    );

现在我想将它转换为 cakephp 最新版本。即:3.1.5 我找到了 notempty 规则的解决方案。但是代码的转换是什么。或者是否有旧版本项目的版本自动升级过程?

4

1 回答 1

2

有一个从 CakePHP 2.x 升级到 CakePHP 3.x 的工具。但是,恐怕它不支持验证。

为 3.x 重写规则应该不会太复杂。

上面看起来像:

public function validationDefault(Validator $validator) {

    $validator
        ->requirePresence('email')
        ->add('email', 'unique', [
            'rule' => 'validateUnique',
            'provider' => 'table',
            'message' => 'Email already exists'
         ])
        ->add('password', 'minLength', [
             'rule' => ['minLength', 6],
             'message' => 'Password must be minimum 6 characters long',
    ]);

    return $validator;
}

以上内容符合您的Table定义。

确保您阅读了关于 Validation 的 CakePHP 3.x 文档

于 2015-12-04T22:05:58.463 回答