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

このページのコンテンツ

前のドキュメント

Collection

次のドキュメント

UniqueEntity

ソース



クイックリンク


コメントリスト

Powered by Disqus

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


コンテンツ上部に更新日の記載のないページは、翻訳の内容が2.0相当のものになっております。最新の内容は原文のページをご確認ください。

Count

Note

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

検証対象のコレクション(配列、または Countable を実装したオブジェクト)の要素数が指定された最小と最大の範囲内かどうかを検証します。

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

基本的な使い方

emails 配列フィールドに含まれる要素の数が 1 個から 5 個の間であることを検証するには、次のようにします。

  • YAML
    # src/Acme/EventBundle/Resources/config/validation.yml
    Acme\EventBundle\Entity\Participant:
        properties:
            emails:
                - Count:
                    min: 1
                    max: 5
                    minMessage: "You must specify at least one email"
                    maxMessage: "You cannot specify more than {{ limit }} emails"
    
  • Annotations
    // src/Acme/EventBundle/Entity/Participant.php
    namespace Acme\EventBundle\Entity;
    
    use Symfony\Component\Validator\Constraints as Assert;
    
    class Participant
    {
        /**
         * @Assert\Count(
         *      min = "1",
         *      max = "5",
         *      minMessage = "You must specify at least one email",
         *      maxMessage = "You cannot specify more than {{ limit }} emails"
         * )
         */
         protected $emails = array();
    }
    
  • XML
    <!-- src/Acme/EventBundle/Resources/config/validation.xml -->
    <class name="Acme\EventBundle\Entity\Participant">
        <property name="emails">
            <constraint name="Count">
                <option name="min">1</option>
                <option name="max">5</option>
                <option name="minMessage">You must specify at least one email</option>
                <option name="maxMessage">You cannot specify more than {{ limit }} emails</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 $data)
        {
            $metadata->addPropertyConstraint('emails', new Assert\Count(array(
                'min'        => 1,
                'max'        => 5,
                'minMessage' => 'You must specify at least one email',
                'maxMessage' => 'You cannot specify more than {{ limit }} emails',
            )));
        }
    }
    

オプション

min

: integer [default option]

必須のオプションで、要素の最小個数を指定します。検証対象のコレクションの要素数が指定した個数未満である場合に、検証は失敗します。

max

: integer [default option]

必須のオプションで、要素の最大個数を指定します。検証対象のコレクションの要素数が指定した個数より多い場合に、検証は失敗します。

minMessage

: string デフォルト: This collection should contain {{ limit }} elements or more..

検証対象のコレクションの要素数が min オプションで指定した値未満である場合に、このメッセージが表示されます。

maxMessage

: string デフォルト: This collection should contain {{ limit }} elements or less..

検証対象のコレクションの要素数が max オプションで指定した値よい大きい場合に、このメッセージが表示されます。

exactMessage

: string デフォルト: This collection should contain exactly {{ limit }} elements..

max オプションと min オプションの値が同じで、検証対象のコレクションの要素数がこれとは異なる場合に、このメッセージが表示されます。

blog comments powered by Disqus