2017-07-04 11 views
0
public function rules() 
{ 
    return [ 
     [['option_list', 'modifier'], 'filter', 'filter' => function($value) { 
      // I can get the value but I don't know to which attribute it belongs (option_list or modifier) 
     }], 
    ]; 
} 

どのように処理されている属性名を得るのですか?私が見つけた唯一の回避策は、属性ごとに別々のフィルタを作ることです...Yii2検証。複数の属性で実行し、フィルタ

答えて

1

検証関数に渡される最初のパラメータは

public function rules() 
{ 
    return [ 
     [['option_list', 'modifier'], function($attribute) { 
      // use $this->$attribute for conditions or filtering 
      // use $this->addError($attribute, '<error message>') for adding errors 
     }], 
    ]; 
} 

はいhttp://www.yiiframework.com/doc-2.0/guide-input-validation.html#creating-validators

+1

を参照してくださいを次のようにあなたがそれを使用することができ$attributeですそれはバリデーションのためですが、バリデーターです。注目すると、私は「フィルター」を使用しています。 –

+0

@SergeyOnishchenkoはい、実際には 'filter'はYii2コアバリデーターの1つです。独自のルールで簡単にフィルタリングを実行することもできます。 – oakymax

+0

はい、これは問題ありませんが、この場合は検証の代わりにデータの変更が行われていることはあまりありません。 –

関連する問題