2

我有一个名为的表Users,以下查找工作正常:

$users = $this->User->find('list', array('conditions'=>array('User.id'=>1)));

但是,如果我尝试使用"User.id != 1" or "User.id >= 5", find 获取用户列表,则不会返回数据。

我使用的语法是

$users = $this->User->find('list', array('conditions'=>array('User.id'=>'<> 1')));

$users = $this->User->find('list', array('conditions'=>array('User.id'=>'>= 1')));

Cake 为该User.id => '<> 1')案例生成的调试查询是

SELECT `User`.`id`, `User`.`first_name` FROM `mesh2`.`users` AS `User` WHERE `User`.`id` = '<>1',

这似乎是不正确的。

我使用了 Alvin网站上的示例。有任何想法吗?

4

3 回答 3

7

您需要放在>=阵列的正确一侧:

$this->User->find('list', array(
    'conditions'=>array('User.id >=' => 1)));

如“官方”文档中所述:

http://book.cakephp.org/2.0/en/models/retrieving-your-data.html#complex-find-conditions

于 2013-01-21T15:06:39.100 回答
0

默认情况下可能的键,所有这些都是可选的:

$params = 
        array(
        'conditions' => array('Model.field' => $thisValue), //array of conditions
        'recursive' => 1, //int
        //array of field names
        'fields' => array('Model.field1', 'DISTINCT Model.field2'),
        //string or array defining order
        'order' => array('Model.created', 'Model.field3 DESC'),
        'group' => array('Model.field'), //fields to GROUP BY
        'limit' => n, //int
        'page' => n, //int
        'offset' => n, //int
        'callbacks' => true //other possible values are false, 'before', 'after'
    );

询问:

$resp = find('all', $params);

debug($resp);
于 2014-04-02T07:19:08.490 回答
0
$this->User->find('list', array(
    'conditions'=>array('User.id >=' => true)));
于 2014-08-14T13:56:46.743 回答