Récupère le conteneur de service de l'entité dans symfony 2.1 (Doctrine)
Comment utiliser l'entité en service dans la doctrine (à l'Aide de Symfony 2.1).
Exemple d'utilisation:
<?php
namespace MyNamespace;
class MyEntity
{
protected $container = NULL;
public function __construct($container)
{
$this->container = $container;
}
/**
* @ORM\PrePersist
*/
public function()
{
//Must call to container and get any parameters
//for defaults sets entity parameters
$this->container->get('service.name');
}
}
La suite, j'ai besoin d'obtenir l'accès à l'ensemble du conteneur.
source d'informationauteur ZhukV | 2012-10-31
Vous devez vous connecter pour publier un commentaire.
Une entité est un modèle de données et ne doit contenir des données (et de ne pas avoir toutes les dépendances sur les services). Si vous souhaitez modifier votre modèle dans le cas d'un certain événement (PrePersist dans votre cas), vous devriez penser à faire un La Doctrine de l'écouteur. Vous pouvez injecter le conteneur lors de la définition de l'auditeur:
EDIT: CE n'EST PAS LA meilleure FAÇONc'est la seule façon d'obtenir le service de conteneurs à l'intérieur d'une entité, il n'est pas une bonne pratique, il devrait être évité, mais cela répond à la question.
Dans le cas où vous voulez toujours le récipient et/ou de dépôt, vous pouvez étendre une base abastractEntity comme ceci: