下面是自己平时在使用ActiveRecord进行数据验证,数据查询等操作时需要注意的点
1.indexBy()
参数中用到的字段必须出现在select里面。
2.leftJoin('campaign','campaign.id = campaign_process.campaignid')
的参数不是数组
3.如果字段被Yii框架的isEmpty()方法判断为空,那么就会默认跳过验证,自定义的checkXXX也会跳过,但是不会跳过required验证器的验证,yii2判断是否为空的方法如下:
4.getAttributeLabel($attributeName)
可以获取属性的label。
5.比如上面已经验证productid是否存在,下面的验证规则如果需要获取product,那么直接使用
function($model){
return $model->product->ios;
}