2016-03-15 65 views
0

我有以下表單驗證:驗證回調從來沒有調用函數

$this->CI->form_validation->set_rules(
    'email', 'lang:email', 'callback_validate_email'); 

在同一個控制器我有以下功能(請原諒這裏的調試):

public function validate_email($string) { 
    echo 'test val'; 
    exit; 
    $valid = $this->CI->force_model->validate_email($string); 
    if(!$valid) { 
     $this->CI->form_validation->set_message('validate_email', 'lang:email'); 
     return false; 
    } else { 
     return true; 
    } 
} 

我的問題是,在函數永遠不會通過回調調用。任何人都可以提出這個問題可能在這裏嗎?

+0

如果它在同一個控制器或控制器中,爲什麼使用'$ this-> CI'?你不需要這樣做,並讓我們認爲你所展示的代碼不是來自控制器。 – Narf

+0

@Narf它是一個控制器和相同的控制器。 $ this-> CI在整個控制器中使用,這是一個問題嗎? –

+0

本身並不是一個問題,但它是多餘的,無助於你。 – Narf

回答

0

我看到別人有這個問題,而奇怪的是,他們還使用$this->CI->...

他們的解決方案是延長驗證庫和添加自定義的驗證回調存在。更多的信息在這裏:CodeIgniter Validation in Library does not accept callback

如果你設置表單驗證規則使用$this->form_validation->...而不是它的工作嗎?例如。

$this->form_validation->set_rules(
    'email', 'lang:email', 'callback_validate_email'); 
+0

謝謝你,我得到的錯誤:「調用成員函數set_rules()在非對象」使用該方法,但是。 –