2010-06-11 11 views

Respuesta

17

Complex find conditions del manual:

$this->Post->find('first', array (
    "Author.name" => "Bob", 
    "OR" => array (
     "Post.title LIKE" => "%magic%", 
     "Post.created >" => date('Y-m-d', strtotime("-2 weeks")) 
    ) 
)); 
+0

Sólo una nota al margen. Tuve problemas al usar solo en el signo de porcentaje, como el segmento de código anterior: '" Post.title LIKE "=>"% magic% ",' En mi código, se sabía que la cadena $ File_Root era la extensión de archivo que wasn 't. Pero de todos modos, tuve que usar signos de porcentaje de sujetalibros para cakephp 2.7 para usar la palabra clave LIKE. Aquí está mi segmento de código de la declaración de hallazgo más grande. 'array ('condiciones' => array ('file_name LIKE' =>"% $ File_Root% "))' – mmv1219

6

que puede utilizar: para "como"

$this->Post->find("all",array('condition'=>array('Author LIKE'=>"ad%"))); 

por encima de consulta le dará los datos de los mensajes de la tabla, donde el nombre del autor comienza con "ad".

de "O"

$this->Post->find("all",array('condition'=>array("OR"=>array('Author LIKE'=>"ad%",'Post LIKE'=>"bo%")))); 

por encima de consulta le dará los datos de los mensajes de la tabla, donde el nombre del autor comienza con "ad" O BIEN Solicita comienza con "b".

+2

No estoy seguro de qué versión de suTaj CakePHP está usando, pero como está escrito, su segunda consulta no funciona en 1.2 , ya que la segunda condición 'Autor LIKE' (" bo% ") sobrescribe la primera condición 'Autor LIKE' ('ad%'). Agregar un espacio después de la palabra 'LIKE' en la segunda condición evita que se sobrescriba la primera. –

0

si el uso de la función donde a continuación, utilice la siguiente: -

->where(['Products.category_id'=>1, 'Products.name LIKE' =>'test%']) 

gracias