codaxis / cakephp-multivalidation-behavior
一个允许动态修改验证规则的 CakePHP 行为。
1.0
2014-04-23 22:15 UTC
Requires
- php: >=5.3.0
This package is not auto-updated.
Last update: 2024-09-14 15:11:19 UTC
README
一个允许动态修改验证规则的 CakePHP 行为。
兼容 Cake 2.4.7+
欢迎提交代码/文档贡献或发布问题。
如何安装
您只需将行为文件复制到您的 APP/Model/Behavior 文件夹
或
您也可以像其他插件一样安装此插件
- 将文件放入
APP/Plugin/MultiValidation
- 在您的 bootstrap.php 中添加
CakePlugin::load('MultiValidation')
或直接添加CakePlugin::loadAll()
如何使用
在您的目标模型中启用插件
class User extends AppModel { public $actsAs = array( 'MultiValidation.MultiValidation' => array( 'types' => array( 'enforceUsernameAndEmail' => array( 'username' => array( 'onlyAlpha' => array( 'rule' => 'alphaNumeric' ), ), 'email' => 'validEmail' => array( 'rule' => 'email', 'required' => true ), ) ), 'enforcePassword' => array( 'password' => array( 'minCharsAllowed' => array( 'rule' => array('minLength', 8) ), ), ), ) ) ) public $validate = array( 'username' => array( 'mustNotBeBlank' => array( 'rule' => 'notEmpty' ) ), 'password' => array( 'minCharsAllowed' => array( 'rule' => array('minLength', 4) ) ), ); }
然后,在您的模型或控制器中,您可以执行以下操作
// Add new username and email validation: $User->addValidation('enforceUsernameAndEmail'); // $User->loadedValidation() would return array('enforceUsernameAndEmail') // Reset to default state: $User->resetValidation(); // $User->loadedValidation() would return array('_default') // Load and set only the password validation: $User->loadValidation('enforcePassword'); // $User->loadedValidation() would return array('enforcePassword') // Add the other validation type also: $User->addValidation('enforceUsernameAndEmail'); // $User->loadedValidation() would return array('enforcePassword', 'enforceUsernameAndEmail') // Reset again to default state: $User->resetValidation(); // $User->loadedValidation() would return array('_default')