yii2唯一验证器仅当字段不为空时

kas*_*oft 7 php yii2

在Yii2中,我的数据库中有两个字段:emailshopId

  • Email并且shopId应该unique在一起
  • Email也可以是empty(NULL)而shopId总是一个整数

这些是我在模型中的规则:

[['email'],'default','value' => NULL],
[['shopId'], 'integer'],
[['email','shopId'], 'unique', 'targetAttribute' => ['email', 'shopId'], 'message' => 'Already taken!'],
Run Code Online (Sandbox Code Playgroud)

当我有两个例如email="NULL"和的条目时,这不起作用shopId="1".

我怎么解决这个问题?

Ser*_*kin 2

skipOnEmpty将属性设置为false http://www.yiiframework.com/doc-2.0/yii-validators-validator.html# $skipOnEmpty-detail