Home | Symfony2Doc »リファレンスドキュメント »バリデータリファレンス »Length

このページのコンテンツ

前のドキュメント

Email

次のドキュメント

Url

ソース



クイックリンク


コメントリスト

Powered by Disqus

ご質問や翻訳不備等お気軽にコメントください。


ご注意

Symfony2日本語翻訳ドキュメントは内容が古くなっております。公式サイトの英語ドキュメントを参照してください。

Length

Note

  • 対象バージョン:2.3
  • 翻訳更新日:2013/6/9

検証対象の文字列の長さが、指定された最小と最大のであることを検証します。

適用先 プロパティまたはメソッド
オプション
クラス Length
バリデーター LengthValidator

基本的な使い方

クラスの firstName フィールドの文字列の長さが “2” と “50” の間であることを検証するには、次のようにします。

  • YAML
    # src/Acme/EventBundle/Resources/config/validation.yml
    Acme\EventBundle\Entity\Participant:
        properties:
            firstName:
                - Length:
                    min: 2
                    max: 50
                    minMessage: "Your first name must be at least {{ limit }} characters length"
                    maxMessage: "Your first name cannot be longer than {{ limit }} characters length"
    
  • Annotations
    // src/Acme/EventBundle/Entity/Participant.php
    namespace Acme\EventBundle\Entity;
    
    use Symfony\Component\Validator\Constraints as Assert;
    
    class Participant
    {
        /**
         * @Assert\Length(
         *      min = "2",
         *      max = "50",
         *      minMessage = "Your first name must be at least {{ limit }} characters length",
         *      maxMessage = "Your first name cannot be longer than {{ limit }} characters length"
         * )
         */
         protected $firstName;
    }
    
  • XML
    <!-- src/Acme/EventBundle/Resources/config/validation.xml -->
    <class name="Acme\EventBundle\Entity\Participant">
        <property name="firstName">
            <constraint name="Length">
                <option name="min">2</option>
                <option name="max">50</option>
                <option name="minMessage">Your first name must be at least {{ limit }} characters length</option>
                <option name="maxMessage">Your first name cannot be longer than {{ limit }} characters length</option>
            </constraint>
        </property>
    </class>
    
  • PHP
    // src/Acme/EventBundle/Entity/Participant.php
    namespace Acme\EventBundle\Entity;
    
    use Symfony\Component\Validator\Mapping\ClassMetadata;
    use Symfony\Component\Validator\Constraints as Assert;
    
    class Participant
    {
        public static function loadValidatorMetadata(ClassMetadata $metadata)
        {
            $metadata->addPropertyConstraint('firstName', new Assert\Length(array(
                'min'        => 2,
                'max'        => 50,
                'minMessage' => 'Your first name must be at least {{ limit }} characters length',
                'maxMessage' => 'Your first name cannot be longer than {{ limit }} characters length',
            )));
        }
    }
    

オプション

min

: integer [default option]

このオプションは必須で、文字列の長さの最小値を指定します。検証対象の文字列の長さが指定した値より短い場合、検証に失敗します。

max

: integer [default option]

このオプションは必須で、文字列の長さの最大値を指定します。検証対象の文字列の長さが指定した値より長い場合、検証に失敗します。

charset

: string デフォルト: UTF-8

検証対象の文字列の長さを計算する際に内部で使われる文字セットを指定します。長さの計算には、利用可能であれば grapheme_strlen PHP 関数が使われます。そうでなければ mb_strlen PHP 関数が使われます。どちらも利用できなければ strlen PHP 関数が使われます。

minMessage

: string デフォルト: This value is too short. It should have {{ limit }} characters or more..

検証対象の文字列の長さが min オプションで指定した長さより短い場合に、このメッセージが表示されます。

maxMessage

: string デフォルト: This value is too long. It should have {{ limit }} characters or less..

検証対象の文字列の長さが max オプションで指定した長さより長い場合に、このメッセージが表示されます。

exactMessage

: string デフォルト: This value should have exactly {{ limit }} characters..

min オプションと max オプションの値が同じで、検証対象の文字列の長さが異なる場合に、このメッセージが表示されます。

blog comments powered by Disqus