Ok, ya he definido una entidad de mi proyecto, categorias, con 2 relaciones a si misma. No es el ejemplo mas simple pero tengo que hacerlo, creo que lo he hecho mas o menos bien. Tampoco me he explayado, quiero saber si voy bien y entonces entrar en detalles.
Código PHP:
<?php
use DoctrineCommonCollectionsArrayCollection;
/**
* @Entity
* @Table(name="categorias")
**/
class Categoria
{
/** @Id @GeneratedValue @Column(type="integer") **/
protected $id;
/** @Column(type="integer") **/
protected $fkidcategoria;
/**
* @ManyToOne(targetEntity="Categoria", inversedBy="categoriashijo" )
**/
protected $categoriapadre;
/** @OneToMany(targetEntity="Categoria", mappedBy="categoriapadre")
*/
protected $categoriashijo;
/** @Column(type="string") **/
protected $nombre;
/** @Column(type="string") **/
protected $urlrelativa;
/** @Column(type="text") **/
protected $descripcion;
/** @Column(type="boolean") **/
protected $visible;
/** @Column(type="boolean") **/
protected $activo;
public function __construct( Categoria $categoria = null )
{
$this->categoriapadre = $categoria;
$this->categoriashijo = new ArrayCollection();
}
public function addCategoriaHijo( Categoria $categoria )
{
$this->categoriashijo[] = $categoria;
}
}
Ahora bien, ¿ donde deberia colocar el codigo siguiente o que debo de hacer para poder trabajar con las entidades en mis controladores ?
Código PHP:
<?php
use DoctrineORMToolsSetup;
use DoctrineORMEntityManager;
require_once 'Doctrine/Common/ClassLoader.php';
$loader = new DoctrineCommonClassLoader("Doctrine");
$loader->register();
$dbParams = array(
'driver' => 'pdo_mysql',
'user' => DB_USER,
'password' => DB_PASS,
'dbname' => DB_NAME
);
$path = array( DIR_MODELOS );
$config = Setup::createAnnotationMetadataConfiguration($path, true);
$entityManager = EntityManager::create($dbParams, $config);
?>