In Yii2 Ich habe zwei Felder in meiner Datenbank: email
und shopId
yii2 einzigartige Prüfung nur, wenn Feld nicht leer
Email
undshopId
sollteunique
zusammenEmail
seine auchempty
(NULL
) währendshopId
sein könnte ist immer eine ganze Zahl
Dies sind meine Regeln im Modell:
[['email'],'default','value' => NULL],
[['shopId'], 'integer'],
[['email','shopId'], 'unique', 'targetAttribute' => ['email', 'shopId'], 'message' => 'Already taken!'],
Dies funktioniert nicht, wenn ich zwei Einträge mit z. email="NULL"
und shopId="1"
.
Wie kann ich das lösen?
Hallo. Sie können dies auf der DB-Seite lösen, indem Sie 'email' und' shopId' als verbundenen eindeutigen Schlüssel setzen. Die genaue Aussage dafür hängt von Ihrem DBMS ab. –
Benutzer 'when' Bedingung http://www.yiiframework.com/doc-2.0/guide-input-validation.html#conditional-validation – SiZE
Danke, die wann Bedingung funktionierte. Ich kann das nicht auf DBMS Side lösen, da die Modellvalidierung von Yii2 vor – kasoft