CakePHP验证=>'create',on =>'update'

Joh*_*haw 3 cakephp cakephp-2.0

我希望你们cakephp专家可以在模型中回答这个问题2.1和数据验证.

Cake为您提供了一个"on"键,用于验证数组.我理解文档对此的看法,但我的问题是,这两个项目有什么意义.

假设我有一个创建记录的验证规则.验证通过并创建记录.

然后,用户去编辑该记录并将其更改为不再通过该特定验证的内容.但是,由于我的验证集仅在create上运行,因此验证通过,并使用无效数据更新记录.在我看来,这将适用于任何创建/更新规则.如果用户想要绕过验证,只需创建一个有效的记录,然后去编辑它,使它现在无效.

有人可以帮助我理解何时使用更新和创建可能有意义?

dec*_*eze 11

这对于required规则是最有用的.您应该设置最低要求的某些字段required 'on' => 'create'.如果数据集中不存在这些字段并且无法创建记录,则此规则将失败,但允许您更新现有记录,而无需每次都传递该字段.

例如:

'email' => array(
    'required' => array(
        'on'         => 'create',
        'rule'       => 'notEmpty',
        'message'    => 'Enter your email address',
        'required'   => true,
        'last'       => true
    ),
    'notempty' => array(
        'rule'       => 'notEmpty',
        'message'    => 'Enter your email address',
        'allowEmpty' => false,
        'last'       => true
    ),
    'email' => array(
        'rule'       => 'email',
        'message'    => 'Not a valid email address',
        'last'       => true
    )
)
Run Code Online (Sandbox Code Playgroud)