2017-01-13 8 views
2

これは(Yii2)RangeValidator検証正し

//simulating incorrect user input 
//$model->status='some-string'; 

public function rules() 
{ 
    return [ 
     ['status', 'in', 'range' => [0]], //asserts true (why?) 
     //['status', 'in', 'range' => [0], 'strict' => true], //asserts false (correct) 

    ]; 
} 

EDITを検証します。

+0

テスト済みで、定数で動作しています。 –

+0

このコードに問題があるようです –

+1

Humh、$ model-> statusが "some-string"として入力された場合、厳密なモードが使用されていない限り、バリデーターは0に等しいと宣言します。したがって、問題は定数ではなく、比較自体です。 – Decimoseptimo

答えて

0

それは私の作品にこれを試してみてくださいあなたがモデルクラスに内部

class model extends activeRecord { 
const STATUS = 0; 
public function rules() 
{ 
    return [ 
     [['status'], 'in', 'range' => [self::STATUS]], 
    ]; 
} 
} 

をあなたの定数を定義してください.....

+0

こんにちは、私はこれを更新しました。 @ダニ – Decimoseptimo

+0

私はあなたのために働くことを願っていますか? – Dani

0

ステータスが検証の時に最も可能性の高い空です、内部チェックは次のように計算する:参照、

// non-strict: 
null == 0 // this is true 

// strict: 
null === 0 // this is false 

同じ空の文字列に適用されrelated question

関連する問題