如何在rules()方法中获得验证?

时间:2012-05-18 06:36:45

标签: php yii

只是为了解释,这是表

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

如果mark == 1则item1需要一个值,如果mark == 2则item2需要一个值

在rules()方法中,我该如何获得此规则?

2 个答案:

答案 0 :(得分: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');
}

或者你在问别人什么?

答案 1 :(得分:0)

您需要扩展validate()方法才能执行此操作,并手动添加错误。我总是回到这个文档来获取验证器选项(稍后可能会有用)

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