Diferencia al intanciar entidad

edited septiembre 2007 in Principiantes
Hola. Alguien me puede explicar que diferencia existe entre estas dos llamadas a la entidad Productos? Los dos hacen lo mismo. Puede que el segundo sea estático?

//-- Primera opción
$Productos = new Productos();
$this->productos = $Productos->find();

//-- Segunda opción
$this->productos= $this->Productos->find();

Comentarios

  • Sucede que $this->Productos es una instancia de la clase Productos que es creada por el constructor del controlador y almacenada en esa variable.

    Es decir en el constructor sucede:
    $this->Productos = new Productos();
    

    Claro que esto ocurre utilizando metaprogramacion y por lo tanto carga todos los modelos. <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->

    Ahora te preguntaras porque utilizar aveces
    $Productos = new Productos&#40;&#41;;
    $productos = $Productos-&gt;find&#40;&#41;;
    

    Se usa mayormente en los helpers , sucede que los helpers estan fuera del ambito de la instancia del controlador, por lo tanto si quieres utilizar un modelo lo tienes que instanciar en una variable.

    Saludos.
  • Es decir que para dentro de los controladores ya hay una variable instanciada de los models que puedo directamente usarlas? Entiendo correctamente?
  • Si, correcto
  • Ok gracias emilio.rst
Sign In or Register to comment.