Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Problema con base en modulo Default - ZF

Estas en el tema de Problema con base en modulo Default - ZF en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Que tal amigos, estoy teniendo este problema y le hago cambios pero no lo puedo hacer funcionar. (el resto de la aplicacion funciona correctamente, incluso ...
  #1 (permalink)  
Antiguo 02/02/2010, 10:34
 
Fecha de Ingreso: octubre-2009
Mensajes: 240
Antigüedad: 12 años, 7 meses
Puntos: 6
Problema con base en modulo Default - ZF

Que tal amigos, estoy teniendo este problema y le hago cambios pero no lo puedo hacer funcionar. (el resto de la aplicacion funciona correctamente, incluso con accesos a base de datos, en otros modulos)
El tema es el siguiente, tengo un sitio hecho con zend_tool.
En el modelo del modulo default tengo esto:
Código PHP:
class Default_Model_DbTable_Autos extends Zend_Db_Table_Abstract    
{
protected 
$_name 'autos';
protected 
$_primary 'id';

function 
vertodos(){
        
   
$todos $this->fetchAll();
   return 
$todos;
          
        }

Por ser modulo 'default' debe ir _DbTable_ , eso dice el manual.

El problema es cuando la llamo del controller, ya he intentado de diferentes maneras, lo logico seria:
Código PHP:
$Autos = new Default_Model_DbTable_Autos();
$select $Autos->vertodos(); 
pero me sale este error
Código PHP:
Warning: include(C:wampwwwZendfmiproyectoapplication/models/DbTable//Autos.php) [function.include]: failed to open stream: No such file or directory in C:\wamp\www\Zendf\libreriazend\library\Zend\Loader\Autoloader\Resource.php on line 176 
No se porque me sale en el include esto al final '//Autos.php' doble barra, quizas esta alli el problema.
Si me pueden dar una manito les agradezco.
Saludos.
  #2 (permalink)  
Antiguo 02/02/2010, 11:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 16 años
Puntos: 2135
Respuesta: Problema con base en modulo Default - ZF

Como tienes registrado tu autoloader?
  #3 (permalink)  
Antiguo 02/02/2010, 16:01
 
Fecha de Ingreso: octubre-2009
Mensajes: 240
Antigüedad: 12 años, 7 meses
Puntos: 6
Respuesta: Problema con base en modulo Default - ZF

Hola.
Código PHP:
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{

protected function 
_initAutolad()
    {
        
$autoloader = new Zend_Application_Module_Autoloader(array(
            
'namespace' => 'Default',
            
'basePath' => dirname(__FILE__)
            
        ));
        return 
$autoloader;
    }
.
.

  #4 (permalink)  
Antiguo 02/02/2010, 17:26
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 16 años
Puntos: 2135
Respuesta: Problema con base en modulo Default - ZF

Como se llama el archivo y cual es la ruta donde esta?

Saludos.
  #5 (permalink)  
Antiguo 02/02/2010, 17:50
 
Fecha de Ingreso: octubre-2009
Mensajes: 240
Antigüedad: 12 años, 7 meses
Puntos: 6
Respuesta: Problema con base en modulo Default - ZF

Hola GatorV, te refieres al archivo Bootstrap.php ?
Esta en la carperta 'application' (miproyecto/application/Bootstrap.php) tal cual viene armado con zend tool, todo esta armado tal cual lo arma zend tool, lo mismo los modulos.

El controller en cuestion esta en miproyecto/application/modules/default/controllers/PruebaController.php

El modelo miproyecto/application/modules/default/models/Autos.php
  #6 (permalink)  
Antiguo 02/02/2010, 17:53
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 16 años
Puntos: 2135
Respuesta: Problema con base en modulo Default - ZF

Si es dbtable tiene que ir en application/models/DbTable/Autos.php

Saludos.
  #7 (permalink)  
Antiguo 02/02/2010, 18:14
 
Fecha de Ingreso: octubre-2009
Mensajes: 240
Antigüedad: 12 años, 7 meses
Puntos: 6
Respuesta: Problema con base en modulo Default - ZF

Y si quisiera dejar los archivos donde estan ahora como tendría que ser el llamado?
Código PHP:
Ver original
  1. class Default_Model_Autos extends Zend_Db_Table_Abstract  // o sea sin el DbTable
y desde el controller:
Código PHP:
Ver original
  1. $Autos = new Default_Model_Autos();
  2. $select = $Autos->vertodos();
El problema es que al principio lo hacia asi, y tampoco me andaba.:(

Alguna idea

Última edición por principianteZF; 02/02/2010 a las 18:21
  #8 (permalink)  
Antiguo 02/02/2010, 21:45
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 16 años
Puntos: 2135
Respuesta: Problema con base en modulo Default - ZF

Lo ideal es que sea con DbTable para seguir la nomenclatura de Zend, y tener una subcarpeta DbTable en tu carpeta de models.

Saludos.
  #9 (permalink)  
Antiguo 03/02/2010, 07:56
 
Fecha de Ingreso: octubre-2009
Mensajes: 240
Antigüedad: 12 años, 7 meses
Puntos: 6
Respuesta: Problema con base en modulo Default - ZF

Ok GatorV, muchas gracias.
A ver si lo entendi...
... en la subcarpeta DbTable, tenemos el modelo para el modulo Default.
Para los demas modulos se trabaja sin DbTable (los que no son 'Default'), tal como puse en mi ultimo ejemplo.

Estoy en lo cierto?

En esta misma aplicacion tengo modelos:
Código PHP:
Ver original
  1. class Mimodulo_Model_Miclase...
y funciona perfecto.

Última edición por principianteZF; 03/02/2010 a las 08:02
  #10 (permalink)  
Antiguo 03/02/2010, 08:32
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 16 años
Puntos: 2135
Respuesta: Problema con base en modulo Default - ZF

Los modulos que sean de default deben de ir en la carpeta de application, por ejemplo:
Código:
/application/models/ <- Modelos a implementar
/application/models/DbTable/ <- Modelos que extienden a DbTable_Abstract
Saludos.
  #11 (permalink)  
Antiguo 03/02/2010, 09:57
 
Fecha de Ingreso: octubre-2009
Mensajes: 240
Antigüedad: 12 años, 7 meses
Puntos: 6
Respuesta: Problema con base en modulo Default - ZF

Gracias GatorV!
Coloque mi clase en: /application/models/DbTable/
y funciono corretamente.

Lo que no entiendo es porque zend tool crea la carpeta 'model' dentro del modulo Default y no crea la carpeta /application/models/DbTable/
... si en definitiva el modelo del modulo Default, va allí.
Saludos.
  #12 (permalink)  
Antiguo 03/02/2010, 10:27
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 16 años
Puntos: 2135
Respuesta: Problema con base en modulo Default - ZF

Puedes cambiar el autoloader para eso, por ejemplo usar algo así:
Código PHP:
Ver original
  1. protected function _initAutolad()
  2.     {
  3.         $autoloader = new Zend_Application_Module_Autoloader(array(
  4.             'namespace' => 'Default',
  5.             'basePath' => APPLICATION_PATH . '/modules/default'
  6.            
  7.         ));
  8.         return $autoloader;
  9.     }

Para eso.

Saludos.

Etiquetas: autoloader, modulos, zend-framework
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:25.