Cakephp分页显示某些记录的倍数

Cakephp分页显示某些记录的倍数,php,cakephp,paginate,Php,Cakephp,Paginate,这是我第一次用CakePHP编程。我使用的是CakePHP1.3.3。我遇到了这个问题,我似乎不知道问题出在哪里。我的职能如下: function view_members(){ $data = $this->paginate('User',array('User.level <=' => '10')); print_r($data); } 在我的模型中,用户的设置方式如下: class User extends AppModel { var $nam

这是我第一次用CakePHP编程。我使用的是CakePHP1.3.3。我遇到了这个问题,我似乎不知道问题出在哪里。我的职能如下:

function view_members(){
  $data = $this->paginate('User',array('User.level <=' => '10'));
  print_r($data);
}
在我的模型中,用户的设置方式如下:

    class User extends AppModel {
    var $name = 'User';
    var $hasOne = array(
        'Users_detail' => array(
            'className' => 'Users_detail',
            'dependent' => true,
        ),
        'Users_calendar' => array(
            'className' => 'Users_calendar',
            'dependent' => true,
        ),
    );
    var $hasMany = array(
        'Users_transaction' => array(
            'className' => 'Users_transaction',
            'order' => 'Users_transaction.id ASC', 
            'dependent' => true,
        ),
        'Users_notice' => array(
            'className' => 'Users_notice',
            'order' => 'Users_notice.id DESC',
            'dependent' => true,
        ),
    );
}
我的问题是,当我访问该函数时,我会得到一条记录的多个实例

这是我得到的数组:

Array
(
    [0] => Array
        (
            [User] => Array
                (
                    [id] => 3
                    [level] => 5
                    [name] => Matthew
                    [status] => 1
                )

        )

    [1] => Array
        (
            [User] => Array
                (
                    [id] => 3
                    [level] => 5
                    [name] => Matthew
                    [status] => 1
                )

        )

    [2] => Array
        (
            [User] => Array
                (
                    [id] => 3
                    [level] => 5
                    [name] => Matthew
                    [status] => 1
                )

        )

    [3] => Array
        (
            [User] => Array
                (
                    [id] => 3
                    [level] => 5
                    [name] => Matthew
                    [status] => 1
                )

        )

    [4] => Array
        (
            [User] => Array
                (
                    [id] => 4
                    [level] => 5
                    [name] => Larry
                    [status] => 1
                )

        )

    [5] => Array
        (
            [User] => Array
                (
                    [id] => 5
                    [level] => 5
                    [name] => Brian
                    [status] => 1
                )

        )
);

在本例中,Matthew在数组中出现4次,即使MySQL数据库中只有1条记录。我一直想弄明白它为什么这么做,但到目前为止,我还没有成功。以前有人经历过这种情况吗?

如果没有看到确切的SQL蛋糕正在执行,那么很难找到确切的答案,但我最好的猜测是,这与相关表中存在的数据有关。用户是否在与
user
表相关的一个表中有关联的行


您使用的是
recursive=0
,但这可能没有达到您的预期效果(它实际上会连接到与它有
belongsTo
关系的其他模型)。如果不希望与其他表进行任何联接,请使用
recursive=-1
。请参阅Cake手册中的以了解其工作原理。

在配置中将调试设置为2。调用paginate()生成的SQL查询是什么?
Array
(
    [0] => Array
        (
            [User] => Array
                (
                    [id] => 3
                    [level] => 5
                    [name] => Matthew
                    [status] => 1
                )

        )

    [1] => Array
        (
            [User] => Array
                (
                    [id] => 3
                    [level] => 5
                    [name] => Matthew
                    [status] => 1
                )

        )

    [2] => Array
        (
            [User] => Array
                (
                    [id] => 3
                    [level] => 5
                    [name] => Matthew
                    [status] => 1
                )

        )

    [3] => Array
        (
            [User] => Array
                (
                    [id] => 3
                    [level] => 5
                    [name] => Matthew
                    [status] => 1
                )

        )

    [4] => Array
        (
            [User] => Array
                (
                    [id] => 4
                    [level] => 5
                    [name] => Larry
                    [status] => 1
                )

        )

    [5] => Array
        (
            [User] => Array
                (
                    [id] => 5
                    [level] => 5
                    [name] => Brian
                    [status] => 1
                )

        )
);