2011-12-01 12 views
10

Tengo una consulta que se parece a esto.Usando el operador no igual en Cakephp

$this->paginate('Article', array('Article.status !=' => 'Inactive', 'Article.user_id !=' => $blocked_ids, 'Article.tags LIKE' => "%" . trim($this->params['url']['tag']) . "%")) 

donde $ blocked_ids es una matriz de ids. Se arroja un error

SQL Error: 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= ('170') 

Cuando eliminé != funciona bien. Ningún error

Agradezco cualquier ayuda.

Respuesta

0

Intente utilizar en lugar NOT IN [MySQL Reference]:

$this->paginate('Article', array('Article.status !=' => 'Inactive', 'Article.user_id NOT IN' => $blocked_ids, 'Article.tags LIKE' => "%" . trim($this->params['url']['tag']) . "%")) 
+0

no trabajar. Mismo error. –

2

Esto se debe manejar cuando se está recibiendo los datos en función de su modelo. Usted debe excluirlos mediante el uso de código como este:

no parece EN
'conditions' => array(
    'Article.status' => 'active', 
10
$this->paginate(
       'Article', 
       array (
        'Article.status <>' => 'Inactive', 
        'Article.user_id !=' => $blocked_ids, 
        'Article.tags LIKE' => "%" . trim($this->params['url']['tag']) . "%" 
        ) 
      ); 
Cuestiones relacionadas