CakePHP查找带有多级组的+列表

时间:2014-07-18 23:44:21

标签: cakephp group-by grouping

在CakePHP中是否可以执行查找(' list',...)查询,从中我获得一个分组在多个级别的列表?

例如,如果我想要按用户角色分组的用户列表,还要按推荐联系人的代码分组,我会这样:

$usernameGroups = $this->Article->User->find('list', array(
        'fields' => array('User.username', 'User.first_name', 
                          'User.referral', 'User.group'));

我想要这个输出:

$usernameGroups = Array
(
    ['User'] => Array
    (
        ['AxVc'] => Array
        (
            ['PHPNut'] => 'Larry',
            ['gwoo'] => 'Gwoo'
        )
        ['EQbd'] => Array
        (
            ['IronMan'] => 'Tony',
            ['Hulk'] => 'Bruce'
        )
    )

    ['Admin'] => Array
    (
        ['AxVc'] => Array
        (
            ['_psychic_'] => 'John',
            ['AD7six'] => 'Andy',
            ['jperras'] => 'Joël'
        )
    )

)

显然我试过这个并没有用。如果我只留下三个字段,那就完美了。因为我对Cake很新,可能我错过了一些东西。这个问题有解决方法吗?

1 个答案:

答案 0 :(得分:1)

find('list')只允许2个或3个字段。

您可以使用find('threaded')或使用Hash::nest()