2012-07-31 53 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