我正在使用此查询来获取所有数据,但我还需要添加它返回的行数。
这是我的代码:
function getUsers($id){
$users = $this->User->find('all', array('condition'=>array('my_id'=>$id)));
$numUsers = sizeof($users);
$users['User']['Total']= $numUsers;
echo json_encode($users);
}
$dArray
包含用户的所有数据,但我也想让它告诉我有多少用户。
我在想我会在User对象中获取数据,但这就是我们给我的
Object
0: Object
1: Object
2: Object
3: Object
4: Object
5: Object
User: Object
Total: 6
instead of adding it to the
0: Object
Company: Object
Group: Object
Team: Array[0]
User: Object
company_id: "20"
created: "2012-04-15 17:35:51"
email: "dd@gmail.com"
expiration_date: "2012-04-15 17:35:00"
firstname: "jason"
grants_id: null
group_id: "1"
id: "1"
lastname: "brawar"
modified: "2012-04-23 14:25:48"
name: null
password: "203e686b6a6938648ddd3eb0a8d95988ac638596"
phone: "abcd"
status: "Active"
type: null
username: "asim"
Total: 1
答案 0 :(得分:10)
也许你正在寻找这个...
$conditions = array('somecondition' => $someCond);
$totalUsers = $this->User->find('count', array('conditions' => $conditions));
http://book.cakephp.org/2.0/en/models/retrieving-your-data.html#find-count
好的,现在如果你想获得每个用户的元素总数,应该执行以下操作:
$users = $this->User->find('all');
foreach($users as $key => $user)
$ElementsForEachUser[$key]['totalRows'] = sizeof($user['User']);
答案 1 :(得分:7)
无需在查询中执行 - 只需使用PHP:
<?php
$this->User->recursive=-1;
$users = $this->User->find('all', array('conditions'=>array('my_id'=>$id)));
$numUsers = sizeof($users);
这将为您提供主要项目(即用户)的数量,因为您希望通过递归或可包含的任何“额外”数据将嵌套在每个单独的用户数组中。
答案 2 :(得分:2)
$conditions = array('somecondition' => $someCond);
$totalUsers = $this->User->find('count', array('conditions' => $conditions));
答案 3 :(得分:0)
如果您已经获取了行-sizeof($users);
,如其他答案中所述。
但是,如果要执行sql的COUNT
,since Cake 3,则可以在查询中使用->count()
:
$query = $this->User->find('all');
$number = $query->count();