3

次のSymfony1.4フォーム検証で何が間違っているのかわかりません。基本的に、私が欲しいのは、4つの条件すべてが正しく考慮されることです(必須、最小長、最大長、正規表現)。実際には機能しますが、「必須」条件の場合、カスタムエラーメッセージを表示できず、代わりに「必須」と表示されます。エラーメッセージを表示する方法はありますか?

'username' => new sfValidatorAnd(array(
    new sfValidatorString(
        array('required' => true, 'min_length' => 4, 'max_length' => 20), 
        array('required' => 'Please enter a username.', 'min_length' => 'Your username must have at least 4 characters.', 'max_length' => 'Your username cannot be longer than 20 characters.')
        ),
    new sfValidatorRegex(
        array('pattern' => '/^[A-z0-9]*$/i'),
        array('invalid' => 'Your username can only have letters (A-Z) or numbers (0-9).')
        ),
)),

もう1つ、Regexバリデーターを削除して、通常の1行の文字列バリデーターに変換すると、カスタムエラーメッセージが表示されます!?

誰?

前もって感謝します。

4

1 に答える 1

6

約2週間前に同じ問題に気づき、解決策を見つけました。メッセージをsfValidatorAnd宣言に移動するだけです。

'username' => new sfValidatorAnd(array(
    new sfValidatorString(
        array('required' => true, 'min_length' => 4, 'max_length' => 20), 
        array( 'min_length' => 'Your username must have at least 4 characters.', 'max_length' => 'Your username cannot be longer than 20 characters.')
        ),
    new sfValidatorRegex(
        array('pattern' => '/^[A-z0-9]*$/i'),
        array('invalid' => 'Your username can only have letters (A-Z) or numbers (0-9).')
        ),
), array(), array('required' => 'Please enter a username.')),

それは私を助けました、私はそれがあなたにも役立つことを願っています。

于 2010-01-23T08:27:18.290 に答える