Foros del Web » Programando para Internet » PHP » Zend »

Problema en llamar a una funcion en Zend

Estas en el tema de Problema en llamar a una funcion en Zend en el foro de Zend en Foros del Web. hola chicos, hize la siguiente clase, en una carpeta llamada models, aca esta el ejemplo sencillo Código PHP: class  Categorias  extends  Zend_Db_Table {     protected  $_name  ...
  #1 (permalink)  
Antiguo 07/08/2008, 22:13
 
Fecha de Ingreso: mayo-2005
Mensajes: 257
Antigüedad: 19 años, 6 meses
Puntos: 1
Problema en llamar a una funcion en Zend

hola chicos, hize la siguiente clase, en una carpeta llamada models, aca esta el ejemplo sencillo

Código PHP:
class Categorias extends Zend_Db_Table
{

    protected 
$_name 'categorias';

      public function 
pruebafuncion()

    {
        
$mensaje "hola";

        return 
$mensaje;
    }

        public  function 
obtenerCategorias()

    {
          
$mensaje pruebafuncion();  
      
        }

El problema es que cuando obtenerCategorias quiere llamas a la funcion pruebafuncion, el zend me dice :
Código PHP:
Call to undefined function pruebafuncion() 
Pero si llamo a la funcion desde afuera, funciona bien.

Cual es el problema???.

Un abrazo
  #2 (permalink)  
Antiguo 08/08/2008, 00:36
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años, 6 meses
Puntos: 32
Respuesta: Problema en llamar a una funcion en Zend

Que no son "funciones", son métodos de un objeto y debes usar $this->nombreDeMétodo()
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #3 (permalink)  
Antiguo 08/08/2008, 11:36
 
Fecha de Ingreso: mayo-2005
Mensajes: 257
Antigüedad: 19 años, 6 meses
Puntos: 1
Respuesta: Problema en llamar a una funcion en Zend

gracias por responder, pero cuando ingreso:

Código:
$mensaje =$this->pruebafuncion();
Me devuelve el siguiente error:

Código:
atal error: Uncaught exception 'Zend_Controller_Action_Exception' with message 'Method "pruebafuncion" does not exist and was not trapped in __call()'
Que estoy haciendo mal??
  #4 (permalink)  
Antiguo 08/08/2008, 11:49
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Problema en llamar a una funcion en Zend

Si lo llamas desde dentro de obtenerCategorias debes de usar $this->, si lo haces desde fuera del objeto (que parece que lo haces desde un Controller, debes de usar $nombreinstancia->funcion();

Saludos.
  #5 (permalink)  
Antiguo 08/08/2008, 11:52
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 9 meses
Puntos: 45
Respuesta: Problema en llamar a una funcion en Zend

Como dice GatorV
Para que uses dentro de un Controller tienes que instar el objeto

Código PHP:

class MyController extends Zend_Controller_Action
{
      public function 
indexAction(){
          
$model = new Categorias()
          
$mensaje =  $model->pruebafuncion();
      }

Saludos!
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #6 (permalink)  
Antiguo 08/08/2008, 11:53
 
Fecha de Ingreso: mayo-2005
Mensajes: 257
Antigüedad: 19 años, 6 meses
Puntos: 1
Respuesta: Problema en llamar a una funcion en Zend

Lo estoy llamando dentro de la misma clase, como en el ejemplo que postié.

Código:
class Categorias extends Zend_Db_Table
{

    protected $_name = 'categorias';

      public function pruebafuncion()

    {
        $mensaje = "hola";

        return $mensaje;
    }

        public  function obtenerCategorias()

    {
          $mensaje = $this->pruebafuncion();  
      
        }
}
  #7 (permalink)  
Antiguo 08/08/2008, 11:54
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Problema en llamar a una funcion en Zend

Esto debería funcionar:
Código PHP:
class Categorias extends Zend_Db_Table
{

    protected 
$_name 'categorias';

      public function 
pruebafuncion()

    {
        
$mensaje "hola";

        return 
$mensaje;
    }

        public  function 
obtenerCategorias()

    {
          
$mensaje $this->pruebafuncion();  
      
        }
}  

$c = new Categorias();
$c->obtenerCategorias(); 
Saludos.
  #8 (permalink)  
Antiguo 08/08/2008, 12:08
 
Fecha de Ingreso: mayo-2005
Mensajes: 257
Antigüedad: 19 años, 6 meses
Puntos: 1
Respuesta: Problema en llamar a una funcion en Zend

estas dos lineas, van en un controller, bien?
Código:
$c = new Categorias();
$c->obtenerCategorias();

Ahora, quiero hacerle un echo a $c, como haria? ya que si pongo
Código:
echo $c;
me marca:
Código:
Object of class Categorias could not be converted to string
  #9 (permalink)  
Antiguo 08/08/2008, 12:17
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años, 6 meses
Puntos: 32
Respuesta: Problema en llamar a una funcion en Zend

Ok, pero si estás preguntando y cambiando las preguntas, como hacemos nosotros para acertar con las respuestas?!

¡Esto no tiene nada que ver con lo anterior!

Claramente te da ese error por dos cosas:


  1. No está definido el método __toString()
  2. ¡No has leído nunca el manual!

Por favor, lee el capítulo completo del manual donde dice POO para PHP5 (y no se te ocurra decirnos que ya lo hiciste) y luego vuelve a preguntar pero mucho más concreto y un tema por vez.

No vas a llegar a buen puerto si haces "prueba y error".
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #10 (permalink)  
Antiguo 08/08/2008, 12:25
 
Fecha de Ingreso: mayo-2005
Mensajes: 257
Antigüedad: 19 años, 6 meses
Puntos: 1
Respuesta: Problema en llamar a una funcion en Zend

ok, ya me pongo a leer eso, por ultimo, si quiero que un metodo en mi ejemplo se conecte a la base de datos, tengo que ponerle nose:
Código:
$albums = new Categorias();
?? o ya con ponerlo en un controlador basta?

saludos.
  #11 (permalink)  
Antiguo 08/08/2008, 12:31
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años, 6 meses
Puntos: 32
Respuesta: Problema en llamar a una funcion en Zend

Sugiero que hagas en el foro una pregunta nueva y con más información, este hilo se está distorsionando
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #12 (permalink)  
Antiguo 08/08/2008, 12:34
 
Fecha de Ingreso: mayo-2005
Mensajes: 257
Antigüedad: 19 años, 6 meses
Puntos: 1
Respuesta: Problema en llamar a una funcion en Zend

ok, tema cerrado entonces.
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 02:30.