0

説明のために、ここに表があります

create table test(mark int,item1 varchar(128),item2 varchar(128));

mark==1 の場合、item1 には値が必要です。mark==2 の場合、item2 には値が必要です。

rules() メソッドでは、どうすればこのルールを取得できますか?

4

2 に答える 2

0

モデルsmthにカスタム検証関数を作成します。このような:

public function requiredMark($attributes,$params)
{
    if ($this->mark == 1 && $this->item1==null)
        $this->addError('item1','Item 1 is required');
    elseif ($this->mark == 2 && $this->item2==null)
        $this->addError('item2','Item 2 is required');
}

またはあなたは何か他のものについて尋ねていましたか?

于 2012-05-18T07:53:59.953 に答える
0

これを行うには、validate() メソッドを拡張し、手動でエラーを追加する必要があります。バリデーターのオプションについては、常にこのドキュメントに戻ります (後で役立つ可能性があります)。

http://yii.googlecode.com/files/yii-1.1.0-validator-cheatsheet.pdf

于 2012-05-25T20:24:56.123 に答える