yii2.0自定义rule来验证多个属性

来源:互联网 发布:云计算峰会的会议主题 编辑:程序博客网 时间:2024/06/05 00:50

public function rules()
{
return array_merge(
parent::rules(),
[
[[‘shippingName’, ‘shippingAddress’, ‘shippingPhone’, ‘shippingProvince’, ‘shippingCity’, ‘shippingCounty’], ‘required’],
[[‘shippingProvince’, ‘shippingCity’, ‘shippingCounty’], ‘validateAddress’]
]
);
}

public function validateAddress($attribute, $params){    $address = $this->$attribute;    if (empty($address['name']) || empty($address['id'])) {        $this->addError($attribute, "");        return false;    }    return true;}

这里要使用this>addError(attribute, “”);来提示有错误返回,如果没有这句话,及时我们返回false,但是对于验证规则来说,只要有一个属性是返回true其结果就会是true,因此这里要加上这句话。
attributeparams表示额外的参数
params是需要传的参数,可以是字符串、数组或其他,如果想传多个参数可以写成
[‘title’,’ckunique’,’params’=>[‘key’=>’title’,’index’=>5]];
在方法里面通过
key=params[‘key’]获取参数
index=params[‘index’];
这样你就可以使用这些参数了。

1 0
原创粉丝点击