Bonjour,
Un petit problème se pose à moi.
En effet, j'essaye de me faire un petit plugin Symfony 2 pour mes projets.
Ce plugin enregistre des tickets créés par les utilisateurs.
J'ai donc une entité Ticket, et une entité quelconque User (et c'est bien la le problème).
En effet, dans mon entité Ticket j'aimerais faire
La ou ça me pose problème c'est que comme c'est un bundle à part et réutilisable, je veux l'utiliser dans plusieurs projets. (Le seul prérequis est que le projet doit avoir FOSUserBundle).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 /** * @ORM\ManyToOne(targetEntity="User", inversedBy="tickets", cascade={"remove"}) * @ORM\JoinColumn(name="fkUser") */ protected $user;
De ce fait, je ne connais pas l'entité User à l'avance, et si je met juste targetEntity="User", bien évidemment après un app/console doctrine:schema:update ça me lance un joli:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 [Doctrine\ORM\Mapping\MappingException] The target-entity Test\TicketBundle\Entity\User cannot be found in 'Test\TicketBundle\Entity\Ticket#createdBy'.
L'info se retrouve facilement dans le config.yml:
mais comment prendre cela en compte dans l'annotation?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4fos_user: db_driver: orm # other valid values are 'mongodb', 'couchdb' and 'propel' firewall_name: main user_class: AppBundle\Entity\User
Merci d'avance à ceux qui me sortiront de ce pétrin.
Edit: J'ai trouvé cette solution, je pense qu'il n'y a pas mieux.
Partager