如何将验证规则从 CakePHP 2.x 转换为 3.x?
How do I convert validation rules from CakePHP 2.x to 3.x?
我正在将我的 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 规则的解决方案。但是什么是代码的转换。或者是否有针对旧版本项目的自动版本升级过程?
有一个tool to upgrade from CakePHP 2.x to 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
定义。
我正在将我的 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 规则的解决方案。但是什么是代码的转换。或者是否有针对旧版本项目的自动版本升级过程?
有一个tool to upgrade from CakePHP 2.x to 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
定义。