Yii Framework Forum: ¿Cómo puedo obtener el primer modelo de una lista de modelos? - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

¿Cómo puedo obtener el primer modelo de una lista de modelos? Rate Topic: -----

#1 User is offline   juanmjimenezs 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 97
  • Joined: 15-May 09
  • Location:Colombia

Posted 02 February 2010 - 10:18 AM

Hola, lo que pasa es que en el controlador tengo lo siguiente:
$models=Documento::model()->findAll($criteria);


Y en la vista si yo uso un foreach($models as $model) pues voy a poder imprimir todos los modelos pero el problema es que hay una parte de la vista donde solo necesito obtener el primer modelo entonces yo supuse que eso es un arreglo de modelos y que podría usarlo simplemente así: "$models[0]" pero me sale un error que dice que el indice cero no existe.

Alguien sabe como podría obtener solo el primer modelo?

Gracias!
0

#2 User is offline   gallego123 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 535
  • Joined: 11-August 09
  • Location:Argentina

Posted 02 February 2010 - 10:35 AM

View Postjuanmjimenezs, on 02 February 2010 - 10:18 AM, said:

Hola, lo que pasa es que en el controlador tengo lo siguiente:
$models=Documento::model()->findAll($criteria);


Y en la vista si yo uso un foreach($models as $model) pues voy a poder imprimir todos los modelos pero el problema es que hay una parte de la vista donde solo necesito obtener el primer modelo entonces yo supuse que eso es un arreglo de modelos y que podría usarlo simplemente así: "$models[0]" pero me sale un error que dice que el indice cero no existe.

Alguien sabe como podría obtener solo el primer modelo?

Gracias!


usa find en vez de findall

mira esto http://www.yiiframew...#reading-record

This post has been edited by Horacio Segura: 02 February 2010 - 10:36 AM

KISS - Keep It Simple Stupid
ASAP-As Soon As Possible
http://www.yiiframew...oc/cookbook/71/
1

#3 User is offline   juanmjimenezs 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 97
  • Joined: 15-May 09
  • Location:Colombia

Posted 02 February 2010 - 11:02 AM

View PostHoracio Segura, on 02 February 2010 - 10:35 AM, said:

usa find en vez de findall

mira esto http://www.yiiframew...#reading-record


Hola Horacio, tienes razón... lo que pasa es que yo quiero aprovechar el findAll() que me toca hacer en esa misma vista para mostrar mas abajo ese listado, es que me imagino que debe haber forma de obtener ese modelo de una lista de modelos y así no tengo que hacer findAll() y find() sino que solo con el findAll() poder tener ambas cosas.

Muchas gracias por tu respuesta.
0

#4 User is offline   sebas 

  • Advanced Member
  • Yii
  • Group: Yii Dev Team
  • Posts: 496
  • Joined: 28-October 08
  • Location:Buenos Aires, Argentina

Posted 02 February 2010 - 11:57 AM

array_shift() Removes the first element from an array, and returns the value of the removed element
1

#5 User is offline   juanmjimenezs 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 97
  • Joined: 15-May 09
  • Location:Colombia

Posted 02 February 2010 - 01:39 PM

View Postsebas, on 02 February 2010 - 11:57 AM, said:

array_shift() Removes the first element from an array, and returns the value of the removed element


Gracias Sebas!, mira que probé y me sale un error que dice "Indirect modification of overloaded property Advert::$relAdvImg has no effect" y es el mismo error que sale cuando trato de usar cualquiera de las funciones de array de php para sacar ese modelo de la lista de modelos.
0

#6 User is offline   Luciano 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 134
  • Joined: 20-September 09
  • Location:Buenos Aires, Argentina

Posted 03 February 2010 - 05:54 AM

Hola...
Simplemente con $models[0] tiene que funcionar...
¿Estás seguro que la búsqueda te está trayendo algo?
Company web site: pressEnter

Free as in "beer"...
0

#7 User is offline   juanmjimenezs 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 97
  • Joined: 15-May 09
  • Location:Colombia

Posted 03 February 2010 - 08:21 AM

View PostLuciano, on 03 February 2010 - 05:54 AM, said:

Hola...
Simplemente con $models[0] tiene que funcionar...
¿Estás seguro que la búsqueda te está trayendo algo?


Hola Luciano, tienes razón, con $models[0] me funciona para el ejemplo que coloqué en el post, lo que pasa fue que usé un ejemplo sencillo para poder explicar mas fácil el problema pero ya veo que el problema solo pasa en el ejemplo especifico que tengo aquí... por lo tanto voy a tratar de explicarlo de una forma sencilla:

Resulta que lo que me pasa específicamente es que hice una consulta de unas noticias que están relacionadas con imágenes, entonces lo que obtengo es un listado de modelos de noticias y cada modelo de noticia con un listado de modelos de imágenes, y entonces necesito mostrar en pantalla un listado de las noticias y un preview de la primera imagen de ese listado que viene asociado.

Yo solo tuve que obtener el listado de noticias "$modelsNews=News::model()->with('relNewsImages')->findAll()" y mencionando la relación con la tabla de imágenes automáticamente Yii me incluyó el listado de imágenes de cada noticia, entonces al parecer para yo obtener el primer registro de noticias no hay problema ya que lo puedo obtener con "$modelsNews[0]", pero si yo quiero obtener la primera imagen asociada a la primera noticia como debo hacer?

Nota: Yo se que puedo obtener estos datos que necesito de otra forma, lo que pasa es que quiero aprender mas y por eso quiero saber como hay que hacerlo para que funcione de esta forma porque así tendría que hacer menos consultas.

De ante mano mil gracias!
0

#8 User is offline   Luciano 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 134
  • Joined: 20-September 09
  • Location:Buenos Aires, Argentina

Posted 03 February 2010 - 10:42 AM

Simplemente necesitás usar

$modelsNews[0]->relNewsImages[0]; // o como sea el nombre de la relación


Espero que te sirva.
Company web site: pressEnter

Free as in "beer"...
1

#9 User is offline   juanmjimenezs 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 97
  • Joined: 15-May 09
  • Location:Colombia

Posted 04 February 2010 - 09:28 AM

View PostLuciano, on 03 February 2010 - 10:42 AM, said:

Simplemente necesitás usar

$modelsNews[0]->relNewsImages[0]; // o como sea el nombre de la relación


Espero que te sirva.


Hola Luciano, muchas gracias, lo que tu dices es muy cierto... jeje... lo mas curioso es que yo ya lo había probado así y no me quería funcionar pero cuando tu escribiste el post me dio por volver a probar y ahora si me funciona... lo cual es muy extraño y lo único que se me ocurre es un problema de caché aunque yo recuerdo que esa vez yo probé como en 4 navegadores y aun así no me quería funcionar.

A alguien le ha pasado algo similar?

Yo acabo de colocar un posten el foro para tratar de encontrar una solución, la url es:
http://www.yiiframew...que-maneja-yii/
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users