CakePHP

时间:2017-02-23 12:18:00

标签: mysql entity-framework cakephp

休斯顿,我有问题;

问题

所以,我在我的数据库,实体,属性,价值中有一个EAV模型。两者之间的关系是:

  • 生产有很多实体 - >实体所属于生产
  • 实体hasMany属性 - >属性belongsTo Entity
  • 属性hasMany值 - >值belongsTo属性

表值 ---值(INT 3), --- label(VARCHAR 65), --- id(INT 11 AI)

我可以在我的数据库中保存关系,但是,我的应用程序需要返回Value.value的SUM特定的生产,例如:

最终用户,需要按创建月份的生产合并。那么,现在,我的应用程序返回是这样的:

(int) 0 => array(
        'Production' => array(
            'myconditions' => 'HereIsNotAProblem'
        ),
        'Entity' => array(
            (int) 0 => array(
                'id' => '11',
                'label' => 'Acompanhamento Familiar',
                'production_id' => '8',
                    'Attribute' => array(
                        (int) 0 => array(
                            'id' => '33',
                            'label' => 'Nascidos vivos no m?s',
                            'entity_id' => '11',
                            'Value' => array(
                                (int) 0 => array(
                                    'id' => '1',
                                    'label' => '< 2500g',
                                    'value' => '0',
                                    'attribute_id' => '33'
                                    ),              
                            )
                    )
            )
)

我需要回复:

(int) 0 => array(
        'Production' => array(
            'myconditions' => 'HereIsNotAProblem'
        ),
        'Entity' => array(
            (int) 0 => array(
                'id' => '11',
                'label' => 'Acompanhamento Familiar',
                'production_id' => '8',
                    'Attribute' => array(
                        (int) 0 => array(
                            'id' => '33',
                            'label' => 'Nascidos vivos no m?s',
                            'entity_id' => '11',
                            'Value' => array(
                                (int) 0 => array(
                                    'id' => '1',
                                    'label' => '< 2500g',
                                    'SUM' => 'TOTAL_SUM',
                                    'attribute_id' => '33'
                                    ),              
                            )
                    )
            )
)

我是怎么做到的?

1 个答案:

答案 0 :(得分:0)

因此,当您查询数据时,您需要将值连接到属性并使用SUM表达式。您可以在此处查看类似示例,但使用COUNT:https://book.cakephp.org/3.0/en/orm/query-builder.html#using-leftjoinwith