2

というテーブルがUsersあり、次の検索は正常に機能します。

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

ただし、検索でユーザーのリストを取得しようとすると"User.id != 1" or "User.id >= 5", 、データが返されません。

私が使用した構文は

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

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

User.id => '<> 1')この場合、Cake によって生成されるデバッグ クエリは次のとおりです。

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/retriving-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 に答える