【发布时间】:2011-06-12 06:00:00
【问题描述】:
这是我第一次使用 CakePHP 编程。我正在使用 cakePHP 1.3.3。我遇到了这个问题,我似乎无法弄清楚问题是什么。我的功能如下:
function view_members(){
$data = $this->paginate('User',array('User.level <=' => '10'));
print_r($data);
}
在我的控制器开始时,分页设置为:
var $paginate = array(
'limit' => 20,
'order' => array('User.id' => 'asc'),
'User' => array(
'fields' => array('User.id','User.level','User.name','User.status'),
'recursive' => 0
)
);
在我的模型中,用户是这样设置的:
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,
),
);
}
我的问题是当我访问该函数时,我得到了 1 条记录的多个实例。
这是我得到的数组:
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
)
)
);
在此示例中,尽管 MySQL 数据库中只有 1 条记录,但 Matthew 在 Array 中出现了 4 次。我一直试图弄清楚它为什么会这样做,但到目前为止,我还没有成功。有没有人经历过这种情况?
【问题讨论】:
-
在您的配置中将调试设置为 2。调用 paginate() 生成的 SQL 查询是什么?
标签: php cakephp pagination