CakePHP中的自定义表单验证

时间:2009-07-15 08:39:39

标签: validation forms cakephp

这是我的表单:我想确保至少填写其中一个名称/电子邮件对,因此我正在我的模型中处理自定义验证规则。

alt text http://files.getdropbox.com/u/240752/formfields.png

我原本以为这是一个强制要求使用名字/电子邮件对的简单案例,但如果有人填写第三个字段,那么这并不包括其他字段,并且省略了电子邮件。

此外,如果填写了相应的朋友字段,我只需要检查有效的电子邮件地址。

我是否过度思考这个?我认为我需要在规则之间进行某种互动,但我很难坚持。

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

将验证逻辑放在beforeValidate回调中。

答案 2 :(得分:0)

您的字段是如何生成的?我假设您使用的是:

<?php echo $form->input('Friend.name'); ?> [html stuff] <?php echo $form->input('Friend.email'); ?>

由于在页面中多次执行此操作会产生重复的ID(例如,“FriendName”将是<?php echo $form->input('Friend.name'); ?>生成的每个字段的结果ID),您可能需要在生成它们时为每个字段名称添加一个数字,然后在控制器中循环$this->data['Friend']并在找到它们时使有问题的字段无效(如果名称存在,但电子邮件不是,如您所说)。

我认为没有一种内置的蛋糕来处理这样的情况,但我以前错了!