簡體   English   中英

自定義功能上的Codeigniter表單驗證錯誤消息

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM