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

本文介绍了在Yii2.0框架中如何自定义验证规则以确保多个属性的有效性。通过覆盖`rules()`方法并使用`addError()`确保即使一个属性验证失败也能正确反馈错误信息。示例代码展示了如何验证`shippingName`到`shippingCounty`等多个字段,并传递参数到自定义验证方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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’];
这样你就可以使用这些参数了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值