CakePHP:find哪里的字段不为空

我需要selectUser.site_url不为空的所有行。 在一个普通的MySQL查询中这么做很简单,但是CakePHP是如何完成的呢?

手册提到以下内容:

array ("not" => array ( "Post.title" => null ) ) 

我已经尝试了以下,但它仍然返回一切

 $this->User->find('all', array('conditions' => array('not' => array('User.site_url')))); 

我认为这是你的意思:

 $this->User->find('all', array( 'conditions' => array('not' => array('User.site_url' => null)) )); 

你只是缺less空

 $this->User->find('all', array('conditions' => array('not' => array('User.site_url'=>null)))); 

在Cake中,WHERE条件是通过连接键和值从'conditions'元素构造的。 这意味着如果你愿意的话,你实际上可以跳过提供密钥。 例如:

 array('conditions' => array('User.id'=>1)) 

完全等同于

 array('conditions' => array('User.id = 1')) 

本质上,你可以通过这个解决你的问题:

 $this->User->find('all', array('conditions' => array('User.site_url IS NOT NULL'))); 

你也可以试试这个,

 $this->User->find('all', array('conditions' => array('User.site_url <>' => null)); 

这对我来说很好。

这工作对我来说很好:

 $this->User->find('all', array('conditions' => array('User.site_url !=' => null)); 

请尝试''而不是null

 $this->User->find('all', array('conditions' => array('User.site_url <>' => '')); 

对于简单的查询:

 $this->User->find('all', array( 'conditions' => array( 'User.site_url IS NOT NULL' )); 

但是,如果你想在join查询时做到这一点,那么你需要正确的join它:

 $this->User->find('all', array( 'conditions' => array( 'User.site_url IS NOT NULL' ), 'joins' => array( array( 'table' => $this->getTableName('default', 'table_name'), 'alias' => 'ModelName', 'type' => 'RIGHT', 'conditions' => array( 'ModelName.id = User.join_field_id', 'ModelName.field IS NOT NULL', //<= this condition can be used on main (top) condition ), ), )); 

它为我工作

 $this->set('inventory_masters',$this->InventoryMaster->find('all',array('order'=>$orderfinal,'conditions' => array('InventoryMaster.id' => $checkboxid,'not' => array('InventoryMaster.error'=>null)))));