Annotation "dynamique" dans entité
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
Code:
1 2 3 4 5
| /**
* @ORM\ManyToOne(targetEntity="User", inversedBy="tickets", cascade={"remove"})
* @ORM\JoinColumn(name="fkUser")
*/
protected $user; |
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).
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:
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:
Code:
1 2 3 4
| fos_user:
db_driver: orm # other valid values are 'mongodb', 'couchdb' and 'propel'
firewall_name: main
user_class: AppBundle\Entity\User |
mais comment prendre cela en compte dans l'annotation?
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.