【问题标题】:cakephp resultset for multiple joins and aggregate function...i.e. complex queries用于多个连接和聚合函数的 cakephp 结果集...即复杂查询
【发布时间】:2014-09-24 12:55:59
【问题描述】:

我在我的一个项目中使用 cakephp。我需要的是使用单个模型和单个数组来处理复杂的查询。因为我是 cakephp 新手,所以我在这里被卡住了非常糟糕:

$rs = $this->User->query("
                SELECT  (wd.wajebaat_amt) as commited,
                SUM(pd.sila_waje) as paid, 
                (wd.wajebaat_amt-sum(pd.sila_waje)) as balance, 
                FROM wajebaat_details as wd
                LEFT JOIN waje_pay_details as pd ON (pd.waje_id=wd.waje_id) 
                WHERE wd.hof_id="123" and wd.year="2010"
                GROUP BY wd.waje_id");

print_r($rs); exit();

// 将输出显示为

Array
(
    [0] => Array
        (
            [wd] => Array
                (
                    [commited] => 252000
                )

            [0] => Array
                (
                    [paid] => 253829
                    [balance] => -1829
                )

        )

)

//但是我需要它的格式

Array
(
    [0] => Array
        (
            [wd] => Array
                (
                    [commited] => 252000
                    [paid] => 200000
                    [balance] => 52000
                )

        )

)

【问题讨论】:

    标签: mysql arrays cakephp-2.1


    【解决方案1】:

    你可以使用cakephp 2.5中的Hash(实用程序)方法format()将嵌套数组转换为字符串,在之前版本的cakephp中方法是set(),

    Hash::format(array $data, array $paths, $format)
    

    例子:

    $result = Hash::format($rs,array('{n}.wd.commited','{n}.wd.0.paid','{n}.wd.0.balance'),'%1$d,%2$d,%$d');
    

    输出:

    252000,2000000,52000
    

    更多格式选项请参考cook book of cakephp

    【讨论】:

      猜你喜欢
      • 2021-11-07
      • 2014-02-23
      • 1970-01-01
      • 2015-06-18
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 2011-02-24
      相关资源
      最近更新 更多