Ben bir HABTM ilişki içinde olan Kitap ve Tag olarak adlandırılan iki model, var. Bir çift (kitap, etiket) sadece bir kez kaydedilmesini istiyorum. Benim modellerde ben var
var $hasAndBelongsToMany = array(
'Tag' => array(
'className' => 'Tag',
'joinTable' => 'books_tags',
'foreignKey' => 'book_id',
'associationForeignKey' => 'tag_id',
'unique' => true
)
);
ve tam tersi, ama Benzersiz bayrağı bana yardım etmez; Hala iki kez aynı çift kaydedebilirsiniz.
CakePHP Bunu nasıl yaparsınız? Ben doğrudan veritabanında çift (kitap, etiket) eşsiz beyan etmelidir, ya da bu CakePHP fındık gitmek yapacak? Bu durumun üstesinden gelmek için bir Cakey yolu var mı?
DÜZENLEME: (Ben MySQL kullanıyorum) sorgu ile çift benzersiz yapmaya çalıştık
ALTER TABLE books_tags ADD UNIQUE (book_id,tag_id);
ama bu iyi çalışmaz. Bir kerede birden fazla etiket kaydettiğinizde tüm çiftler yeni iseniz, her şey iyi gider. Çiftlerin en az bir tekrarlanırsa, CakePHP tüm işlemi yapmak için başarısız, bu yüzden HERHANGİ yeni çift (hatta iyi olanlar) kaydetmek değildir.