2011-01-24 35 views
2

我想驗證URL的表單字段。我已將字段的默認設置爲http://。當用戶沒有輸入URL,並且留下http://時,它說無效的URL。 URL不是必需的,所以如果它只是http://,它不應該顯示錯誤消息。如果用戶提交http://作爲URL,我怎麼能忽略它?如何驗證URL,但忽略http://或空白?

感謝

回答

3

的http://是不是一個有效的URL,因此,如果你想允許它反正有2個選項

  1. 創建custom validation rule,對於一個真正的URL返回true + HTTP://
  2. 使用before validate callback和URL字段設置爲空白,如果它僅僅是的http://

希望幫助

編輯

我忘了:你不需要設定要求,但'allowEmpty' => true

required - >表格中必須包含的字段XYZ是發送到服務器

allowEmpty - >一個字段可能爲空


我添加的鏈接上面的回調函數,但無論如何..這就是:

在你的模型類(我只是想這是User):

class User extends AppModel { 
    .. 

    function beforeValidate() { 
     if (isset($this->data['User']['url']) && $this->data['User']['url'] == 'http://') { 
      $this->data['User']['url'] = ''; 
     } 
     return true; 
    } 
    .. 
} 

+0

怎麼辦我使用beforeValidate()?我找不到任何例子。它是一個函數嗎?我如何拉取提交的變量:$ data ['SubmitedForm'] ['URL']?謝謝 – codemonkey613 2011-01-24 16:26:14