2014-12-19 1 views

Antwort

6

sollten Sie Attribut statt target

['a1', 'unique', 'attribute' => ['a1', 'a2']] 

In diesem Fall Feld 'a1' wird Fehlermeldung angezeigt.

Und der andere Fall:

[['a1', 'a2'], 'unique', 'attribute' => ['a1', 'a2']] 

Now 'a1' und 'a2' Attribute Fehlermeldung erhalten, wenn 'a1' und 'A2' sind zusammen nicht eindeutig.

+0

Ja, das ist richtig. Danke –

+4

targetAttribute funktioniert für mich .. Attribut erzeugt Fehler. – beginner

+2

Ich denke, hier könnte etwas nicht stimmen. Docs sagt '$ attributes' * Attribute, die von diesem Validator validiert werden *. Und '$ targetAttribute' \t * Der Name des ActiveRecord-Attributs, das verwendet werden soll, um die Eindeutigkeit * ** des aktuellen Attributwertes zu überprüfen. ** Also sollte' $ targetAttribute' gut funktionieren (tatsächlich funktioniert es gut für mich). Sogar eigene Yii2-Dokumentationsbeispiele verwenden 'targetAttribute'. – slinstj

1

Sie können Ihre einzigartige Felder wie unten schreiben:

[['field1','field2'], 'unique'] 

nun beide, field1 und field2 eindeutig sein sollte.

Ab Yii2 ‚s offiziellen Dokument:

targetAttribute: der Name des Attributs in targetClass, die verwendet werden sollen, die Einzigartigkeit des Eingangswertes zu validieren. Wenn nicht festgelegt, wird der Name des Attributs verwendet, das gerade validiert wird. Sie können ein Array verwenden, um die Eindeutigkeit mehrerer Spalten gleichzeitig zu überprüfen.

3

targetAttribute wird ab neuesten yii2 docs (2017)

['a1', 'unique', 'targetAttribute' => ['a1', 'a2']] 

In diesem Fall Feld 'a1' verwendet werden, wird Fehlermeldung angezeigt.

Und der andere Fall:

[['a1', 'a2'], 'unique', 'attribute' => ['a1', 'a2']] 

Now 'a1' und 'a2' Attribute Fehlermeldung erhalten, wenn 'a1' und 'A2' sind zusammen nicht eindeutig.

für benutzerdefinierte Nachricht comboNotUnique wird statt message

[['a1', 'a2'], 'comboNotUnique' => 'Package Id already exist.', 'unique', 'attribute' => ['a1', 'a2']] 
+0

Gute Klarstellung, obwohl 'comboNotUnique' in 2.0.10 veraltet war und in 2.1 komplett entfernt wird. "Nachricht" sollte in Zukunft verwendet werden. ([Referenz] (http://www.yiiframework.com/doc-2.0/yii-validators-uniquevalidator.html#$comboNotUnique-detail)) – spencer4of6

Verwandte Themen