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');

私のメッセージは変わりませんでした。

何か案は?

4

2 に答える 2

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;
    }
}

Us CI のコールバックは次のとおりです。

$this->form_validation->set_rules('payment_amount', 'Payment Amount', 'callback_payment_amount')
于 2013-01-18T22:30:01.363 に答える
0

MY_Form_validation.php を作成し、コードを挿入します。

ドキュメントを使用します ( http://ellislab.com/codeigniter/user-guide/general/creating_libraries.html )

ネイティブ ライブラリの拡張

既存のライブラリに何らかの機能を追加するだけでよい場合 (おそらく関数を 1 つか 2 つ追加する場合)、ライブラリ全体を自分のバージョンに置き換えるのはやり過ぎです。この場合、単純にクラスを拡張することをお勧めします。クラスを拡張することは、いくつかの例外を除いて、クラスを置き換えることとほぼ同じです。

クラス宣言は、親クラスを拡張する必要があります。新しいクラス名とファイル名の前に MY_ を付ける必要があります (この項目は構成可能です。以下を参照してください)。たとえば、ネイティブの Email クラスを拡張するには、application/libraries/MY_Email.php という名前のファイルを作成し、次のようにクラスを宣言します。

class MY_Email extends CI_Email {

}

注: クラスでコンストラクターを使用する必要がある場合は、必ず親コンストラクターを拡張してください。

class MY_Email extends CI_Email {

  public function __construct()
  {
      parent::__construct();
  }
}
于 2013-01-19T00:30:53.253 に答える