2014-04-23 157 views
0

我在Codeigniter中爲我的表單驗證做了一個自定義函數。 它掛鉤了URL Helper,我通過創建一個MY_url_helper來實現這一點。自定義函數上的Codeigniter表單驗證錯誤消息

助手修飾:

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 */ 

我怎樣調用驗證:

$這 - > form_validation-> set_rules( '圖像', '映像路徑', '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上的內容,它將執行該操作。所以它運行該功能。

我該如何讓錯誤信息出現?

回答

0

您是否將驗證錯誤打印到您的視圖中?在視圖上方的表單上添加此行,然後查看是否打印。

<?php echo validation_errors(); ?>

編輯:

根據您的回覆一些東西......我從來沒有實際使用一個「助手」功能進行驗證回調...我一直所定義的在發生驗證的控制器中進行回調。其他人可能會詳細說明是否可以使用輔助函數作爲回調。您可能需要在控制器中聲明您的驗證功能。你也可以從你在控制器中聲明的回調中返回幫助函數,以避免在兩個地方重寫你的助手。這可能有效。

我假設你在你的控制器中加載'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

+0

對不起,我錯了。複製錯誤的行。線程糾正。 – andershagbard

+0

@andershagbard編輯答案以符合您更新的問題。 – kevindeleon

+0

valid_url是唯一沒有顯示的錯誤。自定義錯誤出現。 – andershagbard