2016-09-12 7 views
1

私はそのような方法で検証したいというモデルの属性を持っています。それは配列でなければならず、3つの要素を持たなければならず、配列内のすべての要素も文字列でなければなりません。現在私は使用しています。配列のYii2バリデーションルール

['config', 'each', 'rule' => ['string']] 

答えて

1

たとえば、カスタムバリデーターを使用することができます。 :

続きを読むcreating validatorsを参照してください。

0

あなたは以下のようにcustomvalidationルールを追加することができます。

public function rules() 
    { 
    return ['config','checkIsArray']; 

    } 



    public function checkIsArray($attribute, $params) 
     { 
      if (empty($this->config)) { 
       $this->addError('config', "config cannot be empty"); 
      } 
      elseif (!is_array($this->config)) { 
       $this->addError('config', "config must be array."); 
      } 
      elseif (count($this->config)<3) { 
       $this->addError('config', "config must have 3 elements"); 
      } 
      else{ 
      foreach ($this->config as $value) { 
       if (!is_string($value)) { 
        $this->addError('config ', "config should have only string values."); 
       } 
      } 
     } 
    } 
関連する問題