0

我有一个简单的创建新帐户页面,其中包含用户名、电子邮件、确认电子邮件、密码和确认密码字段。所有验证都在用户模型下,目前所有输入字段都是必需的。

用户登录后,会出现一个设置页面,他们可以在其中更新电子邮件和密码。输入字段是电子邮件、确认电子邮件、密码和确认密码(与创建帐户页面没有用户名字段的输入字段相同)。但是,我希望验证在设置下有所不同,并且不需要任何字段。在不影响创建新帐户页面的验证规则的情况下,我将如何解决此问题?非常感谢您的帮助。

4

2 回答 2

2

正如 CakePHP 所认为的那样,您似乎并不需要任何“必需”字段。

就 CakePHP 而言,“必需”意味着该字段必须在每次保存该模型时提交。它与字段中是否有内容(即'notEmpty')无关。

所以 - 对于你的情况,你可能只是为每个字段设置正常的数据验证规则(即 minLength、notEmpty、有效的电子邮件......等等等等,并且对两个页面都很好。提交的任何数据都必须通过验证——如果没有提交,没什么大不了的。

你总是可以设置:

'required' => 'create' //or update

if you need to verify that that field exists in the data for a save or update... but I've personally never found that necessary and have created many pages like you've described.

Per the book [here]:

required => true does not mean the same as the validation rule notEmpty(). required => true indicates that the array key must be present - it does not mean it must have a value. Therefore validation will fail if the field is not present in the dataset, but may (depending on the rule) succeed if the value submitted is empty (‘’).

于 2012-09-01T04:07:31.110 回答
0

您可以使用'on',如下所示:

array(
        'rule' => 'required',
        'on'   => 'create' // or 'update'
)

或者您可以尝试在控制器中取消设置验证,但第一个更干净。

于 2012-09-01T01:45:27.630 回答