[英]Codeigniter form validation error message on custom function
我在Codeigniter中為表單驗證做了一個自定義函數。 它與URL Helper掛鈎,我通過制作MY_url_helper來實現。
助手的修改:
function valid_url($str) {
$pattern = "/^(http|https):\/\/([A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+):?(\d+)?\/?/i";
if (preg_match($pattern, $str)) return TRUE;
else return FALSE;
}
/* End of file MY_url_helper.php */
/* Location: ./application/helpers/MY_url_helper.php */
我如何稱呼驗證:
$ this-> form_validation-> set_rules('image','Image path','valid_url');
語言文件:
$lang['valid_url'] = "The %s field must contain a valid URL.";
/* End of file form_validation_lang.php */
/* Location: ./system/language/english/form_validation_lang.php */
但是在提交表單時它不會顯示任何錯誤消息。 如果我更改valid_url函數以在true和false上回顯某些內容,它將執行該操作。 因此它運行該功能。
如何使錯誤消息出現?
您是否將驗證錯誤打印到視圖? 在視圖中將此行添加到表單上方,然后查看是否可以打印。
<?php echo validation_errors(); ?>
編輯:
根據您的回復,有幾件事...我實際上從未使用過“ helper”函數作為驗證的回調...我總是在發生驗證的控制器中定義回調。 其他人也許可以詳細說明您是否可以使用輔助函數作為回調。 您可能必須在控制器中聲明您的驗證功能。 您也可以從在控制器中聲明的回調中返回幫助程序函數,以免在兩個地方都必須重寫您的幫助程序。 那可能行得通。
我假設您正在控制器中加載“ URL”幫助程序?
另外..每個CodeIgniter的文檔...我相信您應該在'set_rules'聲明中將'callback_'附加到函數名稱的開頭。
$this->form_validation->set_rules('image', 'Image path', 'callback_valid_url');
http://ellislab.com/codeigniter/user-guide/libraries/form_validation.html#callbacks
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.