Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/11/2011, 12:09
Avatar de Copia
Copia
 
Fecha de Ingreso: noviembre-2009
Mensajes: 309
Antigüedad: 14 años, 5 meses
Puntos: 4
codeigniter y doctrine2, como llamar a un método de los modelos?

hola, estoy intentando trabajar con codeigniter2 y doctrine2 y la verdad esque tengo una complicacion un poco tonta. no se como llamar desde los controladores a un método de un model definido con doctrine2.

Ademas de esto mi aplicacion lo estoy trabajando en hmvc, asi separo mi aplicacion por módulos., entonces yo tengo un modulo llamado blog. que es una carpeta dentro de application/modules/blog/ y dentro de esta una carpeta para controladores, modelos y vistas.

Esto corre muy bien. El único problema es que no se como llamar al método lo intente de la siguiente manera:

controlador blog.php
Código PHP:
Ver original
  1. class Blog extends MX_Controller
  2. {
  3.     function __construct()
  4.     {
  5.          parent::__construct();
  6.         $this->load->library('doctrine');
  7.         $this->em = $this->doctrine->em;      
  8.     }
  9.     /**
  10.      * Método Principal de blog que nos permitira a travez de una grilla
  11.      * gestionar el blog
  12.      */
  13.     function index()
  14.     {  
  15.         $this->load->library('doctrine');
  16.         //$cat = new models/categorias;
  17.         $rs =$this->em->getRepository('blog\models\categorias')
  18.                             ->getAll(1);
  19.         echo $rs;
  20.         //$rs =
  21.         //$this->load->view('vGrillaBlog');
  22.     }
  23. }
En $rs =$this->em->getRepository('blog\models\categorias') ->getAll(1);
Segun se doctrine dos llama repositorios a las tablas entonces por eso pongo getRepository y si ese es el repositorio, entonces acceder an método pense que seria con getAll(), porque defini ese método pero me sale el siguiente error:
Código PHP:
Ver original
  1. Fatal error: Uncaught exception 'BadMethodCallException' with message 'Undefined method 'getAll'. The method name must start with either findBy or findOneBy!' in /var/www/cms/trunk/eagle/application/third_party/doctrine-orm/Doctrine/ORM/EntityRepository.php:186 Stack trace: #0 /var/www/cms/trunk/eagle/application/modules/blog/controllers/blog.php(28): Doctrine\ORM\EntityRepository->__call('getAll', Array) #1 /var/www/cms/trunk/eagle/application/modules/blog/controllers/blog.php(28): Doctrine\ORM\EntityRepository->getAll(1) #2 [internal function]: Blog->index() #3 /var/www/cms/trunk/eagle/system/core/CodeIgniter.php(339): call_user_func_array(Array, Array) #4 /var/www/cms/trunk/eagle/index.php(163): require_once('/var/www/cms/tr...') #5 {main} thrown in /var/www/cms/trunk/eagle/application/third_party/doctrine-orm/Doctrine/ORM/EntityRepository.php on line 186
__________________
Dejando una huella de mi existencia por la red en http://tiricaya.com