我正在创建一个名为“agreement”的复选框。用户必须点击此以确认他已同意这些协议。但是,我如何将其添加到验证?我可以从模型中做到这一点吗?这是一个不在数据库中的字段。如何验证表单中的额外字段? CAKEPHP
我被困在这里。
我正在创建一个名为“agreement”的复选框。用户必须点击此以确认他已同意这些协议。但是,我如何将其添加到验证?我可以从模型中做到这一点吗?这是一个不在数据库中的字段。如何验证表单中的额外字段? CAKEPHP
我被困在这里。
如果您愿意,您可以手动验证该字段。
$this->Model->set($this->data['Form']['agree']);
if($this->Model->validates($this->data)){
// okay
$this->Model->Save();
}else{
pr($this->Model->invalidFields());
}
或者您可以在模型中进行手动验证,这可能是可取的。为此,我会编写自己的验证函数,检查数据是否存在并与表单值匹配。
http://book.cakephp.org/view/1181/Adding-your-own-Validation-Methods
就个人而言,我会用JavaScript检查,提交表单前,然后才刚刚保存()在控制器再次检查。
我的推理是,协议与数据模型并不真正相关,因为它不是一个存储值(并且只有一个有效条件,所以验证没有意义),但是是表单提交的一个条件。如果它是表格中的一列或用于生成或修改存储值,那么我可能会在模型上执行此操作。
可证实的行为是一种替代方法和干这种使用行为的方法:http://www.dereuromark.de/2011/07/05/introducing-two-cakephp-behaviors/ – mark 2012-11-14 08:57:21