Ver Mensaje Individual
  #12 (permalink)  
Antiguo 07/04/2012, 09:17
chemajmb
 
Fecha de Ingreso: enero-2012
Ubicación: España
Mensajes: 150
Antigüedad: 2 años, 8 meses
Puntos: 0
Respuesta: Ordenando Repositories en Doctrine y otras dudas doctrine

Jejeje, muchas gracias por la ayuda campeon!!

Al final mi lanzador de doctrine ha quedado asi:
Código PHP:
Ver original
  1. <?php
  2.  
  3.     require_once 'Doctrine/Common/ClassLoader.php';
  4.     $loader = new \Doctrine\Common\ClassLoader("Doctrine");
  5.     $loader->register();
  6.    
  7.     $loader = new \Doctrine\Common\ClassLoader('Entidad', DIR_RAIZ . 'modelos' );
  8.     $loader->register();
  9.    
  10.     $loader = new \Doctrine\Common\ClassLoader('Repositorio', DIR_RAIZ . 'modelos');
  11.     $loader->register();
  12.  
  13. ?>
Lo ejecuto en mi lanzador de la aplicacion:
Código PHP:
...
        require_once 
DIR_APLICACION_PRINCIPAL 'Contenedor.php';
        require_once 
DIR_APLICACION_PRINCIPAL 'DoctrineLanzador.php';
        
        
Lanzador::run(new Peticion, new Contenedor);
... 
Y las carpetas las he organizado en modelos:
Código:
mi proyecto
    aplicacion
    librerias
    modelos
        entidad
        manejadores
        repositorio
    privada
        aplicacion
        controladores
        librerias
        publico
            css
            html
            img
            js
        vistas
    publica
        aplicacion
        controladores
        librerias
        publico
            css
            html
            img
            js
        vistas
Privada y publica son los modulos, estoy haciendo una tienda virtual con parte de gestion y parte publica.



Me ha funcionado a la primera por lo cual estoy bastante contento, pero cuando me he puesto con los repositorios, me sale un error. A ver si sabes que puede ser
Código PHP:
Ver original
  1. <?php
  2. namespace Repositorio;
  3.  
  4. use Doctrine\ORM\EntityRepository;
  5.  
  6. class categoriaRepositorio extends EntityRepository
  7. {
  8.     public function findPrincipales()
  9.     {
  10.         $query = $this->_em->createQuery('SELECT c FROM Entidad\Categoria c WHERE c.padrecategoria = null');
  11.         return $query->getResult();
  12.     }    
  13. }
  14.  
  15. ?>
La clase manejador
Código PHP:
Ver original
  1. <?php
  2. require_once 'claseManejador.php';
  3.  
  4. class categoriaManejador extends claseManejador
  5. {
  6.     protected $em;
  7.     protected $class;
  8.     protected $repository;    
  9.      
  10.     public function __construct(\Doctrine\ORM\EntityManager $em, $class)
  11.     {
  12.         parent::__construct($em,$class);
  13.     }
  14.  
  15.     public function findDeletedCategorias()
  16.     {
  17.         return $this->getRepository()->findDeletedCategorias();
  18.     }
  19.    
  20.     public function findPrincipales()
  21.     {
  22.         return $this->getRepository()->findPrincipales();
  23.     }
  24.    
  25. }
  26. ?>
Extiende esta otra clase manejador principal:
Código PHP:
Ver original
  1. <?php
  2. class claseManejador
  3. {
  4.     protected $_em;
  5.     protected $_class;
  6.     protected $_repository;    
  7.      
  8.     public function __construct(\Doctrine\ORM\EntityManager $em, $class)
  9.     {
  10.         $this->_em = $em;
  11.         $this->_class = $class;
  12.     }
  13.     public function findAll($field = null, $value = null)
  14.     {
  15.         return $this->getRepository()->findAll($field, $value);
  16.     }
  17.     public function findOneBy($field, $value)
  18.     {
  19.         return $this->getRepository()->findOneBy($field, $value);
  20.     }
  21.  
  22.     public function getRepository()
  23.     {
  24.         return $this->_em->getRepository($this->_class);
  25.     }
  26. }
  27. ?>

El error que me da es este:
Código:
[Syntax Error] line 0, col 59: Error: Expected Literal, got 'null'
¿ Como puedo investigar o analizar mas profunda o detalladamente los errores ?

Un saludo.

Última edición por chemajmb; 07/04/2012 a las 09:57