Yii 如何验证一部分字段,而不是整个表单



>我的表单中很少有字段,所有这些都是必需的。其中一个字段是 fileField。所以我要做的是使用事务验证字段的一部分,如果这些字段一切正常,上传图像,保存在磁盘上,设置另一个字段的值并将所有字段保存在数据库中。

但正如我所写,问题是需要设置所有字段。当我验证一部分参数时,不会设置另一部分参数,因此验证将返回"false"。

附言对不起我的英语水平

有一些方法可以做到这一点。

首先,可以创建验证类。例如:

class testModel extends CModel{
    public $test;
    public function attributeNames() {
        return array(
            'test'=>'Test'
        );
    }
    public function rules() {
        return array(
            array('test','required'),
                array('test','exist','className'=>'testClass','attributeName'=>'testAtttibute')
        );
    }
}

然后

$test=new testModel();
$test->test=$_POST['ANYNAME'];
if($test->validate()){
    //Do something
}

还可以通过将属性传递到验证方法中来仅验证一个属性

$test->validate(array('test','other attr');

最新更新