我正在使用可包含的行为,而我的查找结果('all')是:
array(
(int) 0 => array(
'User' => array(
'id' => '106',
'email' => 'daje@daje.it',
'pwd' => '0433c024cb08be13000d59a347e640482843f46f177e95749dc6599c259617fd3491dcb940b47693cbbc7f65a2cc5ef62deca2e600c1be133ad54170f7d1fbd1',
'role_id' => '3',
'active' => '1'
),
'Lead' => array(
'id' => '6'
),
'Estimate' => array(
(int) 0 => array(
'lead_id' => '6',
'Estimate' => array(
(int) 0 => array(
'TOT_count' => '2'
)
)
)
)
)
)
我需要计算领先的估算数量。
总计(2)是正确的,但我看到嵌套的'估计'数组,为什么?
我想得到的结果是:
array(
(int) 0 => array(
'User' => array(
'id' => '106',
'email' => 'daje@daje.it',
'pwd' => '0433c024cb08be13000d59a347e640482843f46f177e95749dc6599c259617fd3491dcb940b47693cbbc7f65a2cc5ef62deca2e600c1be133ad54170f7d1fbd1',
'role_id' => '3',
'active' => '1'
),
'Lead' => array(
'id' => '6'
),
'Estimate' => array(
'TOT_count' => '2'
)
)
)
这是发现:
$options = array(
'contain' => array(
'User',
'Estimate' => array(
'fields' => 'COUNT(*) AS TOT_count'
)
),
'conditions' => array('Lead.id' => 6),
'fields' => 'User.*',
'limit' => 1
);
debug($this->Lead->find('all', $options));
我该怎么办? 谢谢!
答案 0 :(得分:3)
当您使用“自定义”AS
语句时,在您的情况TOT_count
中,Cake会始终将其放在名为0
的结果键中。您可以通过在模型中将TOT_count
定义为virtualField来避免这种情况。这样,它将直接嵌套在结果集中的模型名称下。
其次,强制检索lead_id
,因为“需要”与Lead
模型进行连接。如果没有那条信息,它就无法正确检索所有数据。