3

このクエリを使用してすべてのデータを取得していますが、返される行数も追加する必要があります。

これが私のコードです:

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
4

4 に答える 4

11

多分あなたはこれを探しています...

$conditions = array('somecondition' => $someCond);
$totalUsers = $this->User->find('count', array('conditions' => $conditions));

http://book.cakephp.org/2.0/en/models/retrieveing-your-data.html#find-count

さて、各ユーザーが持つ要素の総数を取得したい場合は、次のようにする必要があります。

$users = $this->User->find('all');
foreach($users as $key => $user)
$ElementsForEachUser[$key]['totalRows'] = sizeof($user['User']);
于 2012-05-10T02:30:47.723 に答える
8

クエリでそれを行う必要はありません-PHPを使用するだけです:

<?php
$this->User->recursive=-1;
$users = $this->User->find('all', array('conditions'=>array('my_id'=>$id)));
$numUsers = sizeof($users);

これにより、メインアイテム(つまりユーザー)の数がわかります。再帰的または包含可能を介して含める「余分な」データは、個々のユーザー配列内にネストされるためです。

于 2012-05-10T01:54:20.440 に答える
2
$conditions = array('somecondition' => $someCond);
$totalUsers = $this->User->find('count', array('conditions' => $conditions));
于 2013-04-04T09:56:52.437 に答える
0
  1. sizeof($users);他の回答で述べられているように、 すでに行をフェッチしている場合。

  2. COUNTただし、SQLを実行する場合は、Cake 3以降、クエリで使用でき->count()ます。

$query = $this->User->find('all');
$number = $query->count();
于 2020-04-07T01:58:25.167 に答える