我是cakephp学习者,正在从事一个项目。我有个问题。我做了谷歌,但找不到正确的解决方案。希望我能在这里找到解决方案。
这是我的代码。
function getCompanySales(){
$model=ClassRegistry::init('Customer');
$modelcompany=ClassRegistry::init('Company');
$from = date("Y-m")."-01 00:00:00";
$days_in_month = cal_days_in_month(CAL_GREGORIAN, date('m'), date('Y'));
$to = date("Y-m")."-".$days_in_month." 24:00:00";
$companyname=$modelcompany->find('all');
$companiessales=$model->find('all',array(
'conditions' => array(
"AND" =>array(
"Customer.created >=" => $from,
"Customer.created <=" => $to
)
),
'recursive'=>-1
)
);
return $companiessales;
} // Get Company list
我得到的结果像
Array (
[0] => Array ( [Customer] => Array ( [gateway] => 10 [amount] => 349 ) )
[1] => Array ( [Customer] => Array ( [gateway] => 7 [amount] => 150 ) )
[2] => Array ( [Customer] => Array ( [gateway] => 13 [amount] => 349 ) )
[3] => Array ( [Customer] => Array ( [gateway] => 10 [amount] => 350 ) )
[4] => Array ( [Customer] => Array ( [gateway] => 7 [amount] => 100 ) )
[5] => Array ( [Customer] => Array ( [gateway] => 9 [amount] => 299 ) )
[6] => Array ( [Customer] => Array ( [gateway] => 7 [amount] => 249 ) )
[7] => Array ( [Customer] => Array ( [gateway] => 10 [amount] => 249 ) )
[8] => Array ( [Customer] => Array ( [gateway] => 7 [amount] => 299 ) )
[9] => Array ( [Customer] => Array ( [gateway] => 12 [amount] => 199 ) )
[10] => Array ( [Customer] => Array ( [gateway] => 7 [amount] => 150 ) ) )
但是我想用相同的网关总结价值
array(
[7] => 948 //sum of gateway 7
[9] => 299 //sum of gateway 9
[10] => 948 //sum of gateway 10
[12] => 199 //sum of gateway 12
[13] => 349 //sum of gateway 13
)
在另一个查询中=>
array(
[7] => company 1
[9] => company 2
[10] => company 3
[12] => company 4
[13] => company 5
)
我想要一个最终结果
array(
[company1] => 948
[company1] => 299
[company1] => 948
[company1] => 199
[company1] => 349
)
感谢你的帮助。我敢肯定,我将通过简单的步骤解决此问题。
感谢stackoverflow给我一些想法并找出解决方案。我首先按总和找到客户清单,然后按以下代码按网关分组。在视图中,使用自定义帮助器通过ID获取名称。那就是我一直在寻找的东西。
$companiessales=$model->find('all',array(
'fields'=>array(
'SUM(amount) AS amount',
'gateway'
),
'group' => 'Customer.gateway',
'conditions' => array(
"AND" =>array(
"Customer.created >=" => $from,
"Customer.created <=" => $to
)
),
'recursive'=>-1
)
);
这是通过ID获取网关名称的代码(我们通过对它们进行分组来使它们成为主要ID)。
function getGatewayName($id){
$model=ClassRegistry::init('Gateway');
$companiess=$model->find('first',array(
'fields'=>array('fullname'),
'conditions'=>array(
'Gateway.id' => $id,
),
'recursive'=>-1
)
);
$name=$companiess['Gateway']['fullname'];
return $name;
} // Get Payment Gateway Name
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句