Ver Mensaje Individual
  #28 (permalink)  
Antiguo 27/03/2012, 10:10
chemajmb
 
Fecha de Ingreso: enero-2012
Ubicación: España
Mensajes: 150
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Empezando con Doctrine 2.2.1

Cita:
Iniciado por masterpuppet Ver Mensaje
Vamos por partes, el find deberia ser algo asi:

Código PHP:
Ver original
  1. $em->find('Entity\Category', 1);

¿ Por que escribes 'Entity\Category' y no 'Category' como nombre de la entidad ? ¿ escribes Entity para indicar el nombre de la carpeta ? ¿ o por que ? Yo las entidades las tengo en la carpeta Entidades, pero si en el inicio del em ya le digo "ruta/de/entidades" no se por que luego tengo que volver a escribir Entity

Ahora con respecto a como lo estas utilizando, parece ActiveRecord, no es la idea en D2 y si bien son pruebas ten en cuenta que el DQL debería ir en los repositorios.

Te dejo un ejemplo de como podría ser, algo así:

DoctrineLanzador.php
Código PHP:
Ver original
  1. ...
  2. $em = EntityManager::create($dbParams, $config);
  3. return $em;

Lanzador.php
Código PHP:
Ver original
  1. ...
  2. require_once $rutaControlador;
  3. $registro = new claseRegistro();
  4. $registro->set('em', include 'DoctrineLanzador.php');
  5. ...

ok, entendido

Controller
Código PHP:
Ver original
  1. public function prueba()
  2. {
  3.     $em = $this->_regs->get('em');
  4.     //READ
  5.     $category = $em->find('Entity\Category', 1);
  6.     ....
  7.     $repo       = $em->getRepository('Entity\Category');    
  8.     $categories = $repo->findActiveCategories();
  9.  
  10.     //WRITE
  11.     $category->setName('Custom name');
  12.     $em->persist($category);
  13.     $em->flush();    
  14. }

Custom Repository
Código PHP:
Ver original
  1. namespace Entity\Repository;
  2.  
  3. use Doctrine\ORM\EntityRepository;
  4.  
  5. class CategoryRepository extends EntityRepository
  6. {
  7.      public function getActiveCatgories()
  8.      {...}
  9. }

Por lo que veo al igual que con las entidades, hay que definir las clases de los repository para trabajar con ellos. ¿ Los repository son asi como una coleccino de entidades ? ¿ o como ?

Category
Código PHP:
Ver original
  1. namespace Entity;
  2.  
  3. use Doctrine\Common\Collections\ArrayCollection;
  4.  
  5. /**
  6.  * @Entity(repositoryClass="Entity\Repository\CategoryRepository")
  7.  * @Table()
  8.  */
  9. class Category
  10. {...}

Saludos.

Última edición por chemajmb; 27/03/2012 a las 10:18