如何爲ActiveRecord(Yii2)中的多個字段設置唯一性? 我試圖寫在手冊如何爲ActiveRecord(Yii2)中的多個字段設置唯一性?
['a1', 'unique', 'targetAttribute' => ['a1', 'a2']]
但它不工作。
如何爲ActiveRecord(Yii2)中的多個字段設置唯一性? 我試圖寫在手冊如何爲ActiveRecord(Yii2)中的多個字段設置唯一性?
['a1', 'unique', 'targetAttribute' => ['a1', 'a2']]
但它不工作。
您應該使用屬性,而不是targetAttribute
['a1', 'unique', 'attribute' => ['a1', 'a2']]
在這種情況下,場 'A1' 會收到錯誤消息。
而另一種情況:
[['a1', 'a2'], 'unique', 'attribute' => ['a1', 'a2']]
現在,「A1」和「A2」的屬性,如果「A1」和「A2」將收到錯誤信息不是唯一的一起。
是的,這是正確的。謝謝 – 2014-12-19 12:33:06
targetAttribute爲我工作..屬性生成錯誤。 – beginner 2015-10-06 00:32:51
我覺得這裏有些事情不對。文檔說'$ attributes' *屬性由驗證器*驗證。和'$ targetAttribute'*應該用來驗證當前屬性值的唯一性**的ActiveRecord屬性的名稱。**因此,'$ targetAttribute'應該可以正常工作(事實上,它工作正常我)。即使是自己的Yii2文檔示例也會使用'targetAttribute'。 – slinstj 2016-12-11 17:10:11
你可以寫你獨有的領域,如下面:
[['field1','field2'], 'unique']
現在,兩者field1
和field2
應該是唯一的。
作爲Yii2
的官方文件的:
targetAttribute
:應該用來驗證輸入值的唯一性在targetClass
的屬性的名稱。如果未設置,它將使用當前正在驗證的屬性的名稱。 您可以使用數組同時驗證多個列的唯一性。
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']]
很好的解釋,雖然'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
希望每個屬性是唯一indidually或一對? – arogachev 2014-12-19 11:58:47
在同一模型中同樣屬於兩個屬性? – arogachev 2014-12-19 11:59:47