2011-11-18 13 views
5

Digamos que tengo dos paquetes:Cómo cargar una Entidad de otro paquete en Symfony2

  1. Compagny\InterfaceBundle
  2. Compagny\UserBundle

¿Cómo puedo cargar una Entidad de UserBundle en el controlador de InterfaceBundle ?

El Controller de mi Compagny/InterfaceBundle:

<?php 
// src/Compagny/InterfaceBundle/Controller/DefaultController.php 

namespace Compagny\InterfaceBundle\Controller; 
use Symfony\Bundle\FrameworkBundle\Controller\Controller; 
use Compagny\UserBundle\Entity; // I believed this line will do the trick, but it doesn't 

class DefaultController extends Controller 
{ 
    public function indexAction() 
    { 
     $user = new User(); 
    } 
} 

El Entity de mi Compagny/UserBundle:

<?php 

namespace Compagny\UserBundle\Entity 

class User { 
public $name; 
public function setName($name) { 
    // ... 
} 
public function getName() { 
    // ... 
} 
} 

(Vamos dice para este ejemplo que la clase usuario no utiliza Doctrine2, ya que doesn' Necesito conectarme a la base de datos.

Respuesta

12
<?php 
// src/Compagny/InterfaceBundle/Controller/DefaultController.php 

namespace Compagny\InterfaceBundle\Controller; 
use Symfony\Bundle\FrameworkBundle\Controller\Controller; 
use Compagny\UserBundle\Entity\User; // It's not a trick, it's PHP 5.3 namespacing! 

class DefaultController extends Controller 
{ 
    public function indexAction() 
    { 
     $user = new User(); 
    } 
} 

Puede, por supuesto, estar utilizando una clase de otro espacio de nombres. ¡El hecho de que sea una entidad no es importante en absoluto! Por supuesto, también puede consultar al administrador de la entidad para esa entidad.

Cuestiones relacionadas