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)))));