Yii Framework Forum: [RESUELTO]:¿Como usar el atributo 'params' de Criteria? - Yii Framework Forum

Jump to content

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

[RESUELTO]:¿Como usar el atributo 'params' de Criteria? Rate Topic: ***** 1 Votes

#1 User is offline   juanmjimenezs 

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

Posted 03 February 2010 - 10:53 AM

Hola a Tod@s, mi duda es la siguiente...

Estoy consultando una lista de usuarios y tengo un buscador, entonces en el criteria tengo lo siguiente:
$criteria->condition = "(usr_nickname LIKE '%:searchText1%' OR usr_name LIKE '%:searchText2%' ) ";
$criteria->params = array(':searchText1'=>$_GET['searchText'],':searchText2'=>$_GET['searchText']);


Y luego genero la lista de usuarios resultante de la siguiente manera:
$models=User::model()->findAll($criteria);


El problema es que siempre me sale vacía la lista usuarios aunque a la variable por GET le estoy pasando un valor que estoy seguro que debería encontrar.

El sql que me genera es el siguiente:
SELECT * FROM `user` `t` WHERE (usr_nickname LIKE '%:searchText1%' OR usr_name LIKE '%:searchText2%' )  LIMIT 25


Alguien sabe que puedo estar haciendo mal?

Gracias!
0

#2 User is offline   PoL 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 506
  • Joined: 05-November 08
  • Location:Buenos Aires, Argentina

Posted 03 February 2010 - 11:07 AM

Proba usandolo asi:
$criteria->condition = "(usr_nickname LIKE ':searchText1' OR usr_name LIKE ':searchText2' ) ";
$criteria->params = array(':searchText1'=>'%'.$_GET['searchText'].'%',':searchText2'=>'%'.$_GET['searchText'].'%');



Don't say what you think, think what you say
The problem is communication! Excess of communication!
1

#3 User is offline   sebas 

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

Posted 03 February 2010 - 11:16 AM

View PostPoL, on 03 February 2010 - 11:07 AM, said:

Proba usandolo asi:
$criteria->condition = "(usr_nickname LIKE ':searchText1' OR usr_name LIKE ':searchText2' ) ";
$criteria->params = array(':searchText1'=>'%'.$_GET['searchText'].'%',':searchText2'=>'%'.$_GET['searchText'].'%');





También funciona así:


$criteria->condition = "(usr_nickname LIKE :searchText1 OR usr_name LIKE :searchText2) ";
$criteria->params = array(':searchText1'=>'%'.$_GET['searchText'].'%',':searchText2'=>'%'.$_GET['searchText'].'%');

1

#4 User is offline   juanmjimenezs 

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

Posted 03 February 2010 - 11:46 AM

Muchas gracias Pol y Sebas!, como siempre ustedes sacándome de apuros.

Ya me funcionó como dijo Sebas, es decir, quitando las comillas del condition y el sql que me generó fue el siguiente:
SELECT * FROM `user` `t` WHERE (usr_nickname LIKE :searchText1 OR usr_name LIKE :searchText2 )  LIMIT 25


De nuevo muchas gracias a los dos.
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