Get service container from entity in symfony 2.1 (Doctrine)

doctrine, php, service, symfony

Solution

An entity is a data model and should only hold data (and not have any dependencies on services). If you want to modify your model in case of a certain event (PrePersist in your case) you should look into making a Doctrine listener for that. You can inject the container when defining the listener:

services:
    my.listener:
        class: Acme\SearchBundle\Listener\YourListener
        arguments: [@your_service_dependency_or_the_container_here]
        tags:
            - { name: doctrine.event_listener, event: prePersist }

Problem

How to use entity as service in doctrine (Using Symfony 2.1). Example usage: ``` <?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'); } } ``` As a result, I need to get access to the entire container.

Original source

Related problems