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

时间:2014-01-13 13:05:46

标签: php forms validation yii

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

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

P.S。 对不起我的英语技能

1 个答案:

答案 0 :(得分:3)

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

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

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
}

您还可以通过将属性传递给validate方法

来仅验证一个属性
$test->validate(array('test','other attr');