2012-07-31 58 views
0

我对我的表单中的电子邮件输入进行了验证,但我还想为字符串创建一个例外:“未给出”,因为某些联系信息没有电子邮件地址。我知道我可以删除电子邮件验证来做到这一点,但我希望验证那里的新联系人。那些没有电子邮件地址的是一些旧的联系人。所以我需要一个例外,以便将这些联系人添加到这个新系统中。Cakephp电子邮件输入验证异常

模型我现在的电子邮件验证如下:

'email' => array(
     'email' => array(
      'rule' => array('email'), 
      'message' => 'Please enter a valid email address', 
      //'allowEmpty' => false, 
      //'required' => false, 
      //'last' => false, // Stop validation after this rule 
      //'on' => 'create', // Limit validation to 'create' or 'update' operations 
     ), 
     'uniqueEmail' => array(
      'rule'=>'isUnique', 
      'message' => 'This email has already been added' 
     ), 
    ) 

如何实现这个例外,在哪里?

任何帮助将是伟大的。谢谢!!

+0

1.旧的联系人(没有电子邮件)已经在数据库中了? 2.什么区分需要电子邮件的联系人允许空的和什么不是? – 2012-07-31 12:25:16

+0

@ omar.php 这些联系人尚未在数据库中。它们来自纸质记录并需要添加到数据库中。 需要电子邮件被允许为空的那些联系人是现有联系人。其中有数百个,我不认为打电话给所有人请求他们的电子邮件地址是明智的。但是从此之后的任何新联系人都需要提供电子邮件地址。 – jase89 2012-07-31 12:59:39

回答

1

只需取消该'allowEmpty' => false行的注释并将其更改为true,这将允许填写的电子邮件作为空字符串提交。

+0

是否有另一种创建异常的方式,因为我不希望用户在未提交电子邮件地址的情况下提交表单。允许空白将允许他们跳过电子邮件字段。 – jase89 2012-07-31 10:06:21

+1

您可以使用[自定义验证规则](http://book.cakephp.org/2.0/en/models/data-validation.html#custom-validation-rules),或者您也可以删除电子邮件验证规则一位老用户。我建议你阅读我链接到的页面,验证规则在CakePHP 2.2中非常灵活 – Dunhamzzz 2012-07-31 10:11:35