2017-05-17 19 views
0

私のモデル(yii2プロジェクトで)には、という製品コードという2つの列があります。そして問題は、コードではなく、の製品だけを検証する方法です。 $model->validate()はモデル全体を検証しています。しかし、私は入力フィールドが1つだけ必要です:コード。出来ますか??yii2は1つの入力フィールドのみを確​​認します

もっと明確に、私の入力フォームに私は3つのモデルを使用しています。私のコントローラでこれらの3つのモデルを検証する方法。それで、私はそれぞれのモデル分離の分野を検証しようとしているのですか?私は次のように検証するためのもの:

$model->validate(someField)

$anotherModel->(anotherField)

これが可能である??

+0

あなたは、モデルのルール機能でそれを変更することができます。 –

+0

Yii2シナリオを使用します。 –

+0

これはいかがですか? http://www.yiiframework.com/doc-2.0/yii-validators-validator.html#validateAttribute()-detail – Yupik

答えて

0

この機能は、モデルに置き換えることができます。あなたがこれまでに試したことをも示していますか?

public function rules() 
{ 
    return [ 
     [['code', ], 'required'], 
    ]; 
} 
0

検証ルールでシナリオアプローチを使用し、適切なシナリオを渡すことによって、必要なフィールドのみを検証できます。シナリオについて

さらに詳しい情報: http://www.yiiframework.com/doc-2.0/guide-structure-models.html

+0

私はそれを読んだことがあります。しかし、私はいくつかのモデルを使用しています – Sherzod

+1

属性ベースモデルのような1つのベースモデルと内部セットの他のモデルを定義します。次に、ベースモデルのvalidate()関数を検証し、必要に応じてモデルを検証します。 'function validate(){ if(true){ $ this-> model2-> scenario = 'my-custom-validation'; if(!$ this-> model2-> validate()){ $ this-addError( 'model2'); } } } ' – Emptyhand

+0

私の2番目のモデルが** barcode **の場合、このモデルはメインモデルクラスを追加したものです:' public function getBarcode(){ return $ this-> hasMany(BarcodeModel :: className() 、['u_id' => 'id']); } function validate(){ if(真){ $ this-> barcode-> scenario = 'barcode-validation'; if(!$ this-> barcode-> validate()){ return $ this-addError( 'barcode'); } } } – Sherzod

関連する問題