2013-01-18 68 views
0

我想設置set_rule的驗證消息....這可能嗎?設置驗證消息

我想這

$this->form_validation->set_rules('payment_amount', 'Payment Amount', 'regex_match[/^\d{0,4}(\.\d{1,2})?$/]'); 
$this->form_validation->set_message('payment_amount', 'This is a test'); 

和我的消息並沒有改變。

任何想法?

+0

您是否迴應了該消息? '<?php echo form_error('payment_amount'); (如此處所述:http://ellislab.com/codeigniter/user-guide/libraries/form_validation.html#individualerrors) – jtheman

+0

是的,我做了...該消息出現,但不會改變 – user1269625

+0

你在哪裏設置消息呢? – jtheman

回答

2

您可以通過爲規則創建函數來設置自定義驗證錯誤消息。

此代碼未經測試。

public function payment_amount($str) 
{ 
    if (preg_match('[/^\d{0,4}(\.\d{1,2})?$/]', $str) 
    { 
     $this->form_validation->set_message('payment_amount', 'The %s field has an error'); 
     return FALSE; 
    } 
    else 
    { 
     return TRUE; 
    } 
} 

我們CI的回調如下:

$this->form_validation->set_rules('payment_amount', 'Payment Amount', 'callback_payment_amount') 
+0

這段代碼不起作用......現在沒有任何顯示......我不得不在功能上取出公共,因爲它導致了一個錯誤。 – user1269625

+0

聽起來像你沒有把這個功能放在控制器中嗎? –

+0

沒有公開和公開是一樣的。函數默認爲公共。 – jtheman

0

創建MY_Form_validation.php &把你的代碼。

使用的文檔(http://ellislab.com/codeigniter/user-guide/general/creating_libraries.html

擴展本機庫

如果你需要做的就是添加一些功能,以現有的庫 - 也許增加一個功能或兩個 - 那麼它的矯枉過正更換整個圖書館與您的版本。在這種情況下,最好簡單地擴展這個類。擴展類幾乎與替換類有一些例外:

類聲明必須擴展父類。 您的新班級名稱和文件名必須以MY_爲前綴(此項目是可配置的,見下文)。 例如,擴展一個本地電子郵件類,你應該建立一個應用程序/庫/ MY_Email.php文件,並與申報類:

class MY_Email extends CI_Email { 

} 

注意:如果你需要在類中使用構造函數請確保您擴展父構造函數:

class MY_Email extends CI_Email { 

    public function __construct() 
    { 
     parent::__construct(); 
    } 
}