Je vois que la contrainte UniqueIndex est ignorée dans le document incorporé, voici un exemple:UniqueIndex ne fonctionne pas dans le EmbeddedDocument
use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;
/**
* @MongoDB\EmbeddedDocument()
*/
class Service
{
/**
* @MongoDB\Id()
*/
protected $id;
/**
* @MongoDB\Field("type=string")
* @MongoDB\UniqueIndex()
*/
protected $label;
...
Lorsque j'insère 2 lignes avec la même étiquette, ils sont acceptés, quand je besoin d'obtenir l'exception de code 11000 concernant l'erreur de clé en double. Des solutions?
Keyswords:
- Symfony 3.2
- ODM 1.1.5
- MongoDB 3.4.4
J'ai vu this Réponse, je Voudrais savoir juste ya des solutions Se il en PHP, plus claire, En tout cas merci –
Vous pouvez le faire simplement en ajoutant quelques restrictions sur votre méthode AddService (Service $ service), de sorte que vous puissiez appeler tous les services existants (getServices()) et foreach service vérifier que le nom existe déjà ou non, s'il existait, puis lancer une exception. –
Ouais, c'est ce que j'ai déjà fait ... juste la manière standard :), merci !! –