2014-12-19 82 views

回答

6

您應該使用屬性,而不是targetAttribute

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

在這種情況下,場 'A1' 會收到錯誤消息。

而另一種情況:

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

現在,「A1」和「A2」的屬性,如果「A1」和「A2」將收到錯誤信息不是唯一的一起。

+0

是的,這是正確的。謝謝 – 2014-12-19 12:33:06

+4

targetAttribute爲我工作..屬性生成錯誤。 – beginner 2015-10-06 00:32:51

+2

我覺得這裏有些事情不對。文檔說'$ attributes' *屬性由驗證器*驗證。和'$ targetAttribute'*應該用來驗證當前屬性值的唯一性**的ActiveRecord屬性的名稱。**因此,'$ targetAttribute'應該可以正常工作(事實上,它工作正常我)。即使是自己的Yii2文檔示例也會使用'targetAttribute'。 – slinstj 2016-12-11 17:10:11

1

你可以寫你獨有的領域,如下面:

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

現在,兩者field1field2應該是唯一的。

作爲Yii2的官方文件的:

targetAttribute:應該用來驗證輸入值的唯一性在targetClass的屬性的名稱。如果未設置,它將使用當前正在驗證的屬性的名稱。 您可以使用數組同時驗證多個列的唯一性

3

targetAttribute將被用來作爲最新yii2文檔(2017)

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

在這種情況下字段的 'A1' 將接收錯誤消息。

而另一種情況:

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

現在,「A1」和「A2」的屬性,如果「A1」和「A2」將收到錯誤信息不是唯一的一起。

自定義消息comboNotUnique將被用來代替message

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

很好的解釋,雖然'comboNotUnique'在2.0.10中被棄用,並且將在2.1中被完全刪除。應該繼續使用「消息」。 ([參考](http://www.yiiframework.com/doc-2.0/yii-validators-uniquevalidator.html#$comboNotUnique-detail)) – spencer4of6 2017-10-06 21:15:20

相關問題