我已經創建了一個「驗證助手」,它應該有我所有的自定義驗證規則。問題是,當我在表單驗證中使用它們時,它們似乎被忽略。如果我將控件中的函數移動到進行表單驗證的地方,那麼所有的東西就像一個魅力一樣。我的驗證助手是自動加載的。CodeIgniter:自定義驗證規則不能在助手中?
如果我把它們放在助手中,我有什麼理由不能使用這些驗證函數?謝謝。
我已經創建了一個「驗證助手」,它應該有我所有的自定義驗證規則。問題是,當我在表單驗證中使用它們時,它們似乎被忽略。如果我將控件中的函數移動到進行表單驗證的地方,那麼所有的東西就像一個魅力一樣。我的驗證助手是自動加載的。CodeIgniter:自定義驗證規則不能在助手中?
如果我把它們放在助手中,我有什麼理由不能使用這些驗證函數?謝謝。
輔助函數和控制器中的函數明顯不同。
創建extendedMY_Form_validation.php
在libraries/
,加上有最後的功能設置的規則沒有callback_
並不僅僅是他們的函數名。
例子:
<?php if (! defined('BASEPATH')) exit('No direct script access allowed');
class MY_Form_validation extends CI_Form_validation {
/* set_rule('custom_require') */
function custom_require($str) {
return (bool)$str;
}
}
羅賓的答案是對付它的最簡單的方法;然而,爲什麼你不能是這樣的:
看看在您的系統/庫/ Form_Validation.php,行:587
if (! method_exists($this->CI, $rule))
{
continue;
}
此檢查是在所有的回調完成。幫助程序不是類&未加載到CI實例中 - 因此無法從Form_Validation庫中獲得(因爲它使用此方法進行了特定編碼)
該文件應該命名爲「MY_Form_validation.php」,而不是「 My_Form_validation.php'。注意'MY_'中的大寫'Y'。 – Sparky
你是對的,現在已經改變了。 –
我創建了一個名爲'validations.php'的庫,我寫了「class Validations extends CI_Form_validation {」。我寫了一條規則,如「trim | required | enforce_password_policy」。但事情不起作用。 :(請幫助我 – Hussain