CakePHP find+;具有多级组的列表

CakePHP find+;具有多级组的列表,cakephp,group-by,grouping,Cakephp,Group By,Grouping,在CakePHP中是否可以执行一个find('list',…)查询,从中我可以得到一个按多个级别分组的列表 例如,如果我想要一个按角色分组的用户列表,但也要按其推荐联系人的代码分组,我会有如下内容: $usernameGroups = $this->Article->User->find('list', array( 'fields' => array('User.username', 'User.first_name',

在CakePHP中是否可以执行一个find('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'
        )
    )

)
很明显,我试过了,但没用。如果我只留下三个字段,它就工作得很好。因为我对蛋糕还很陌生,所以我可能错过了一些东西。这个问题有解决办法吗

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


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

,但据我所知,这些方法创建了一个带有递归模型的树结构。这不是我需要的,因为我没有任何字段可以递归。我只是想要一个群体,通过某种行为,比如在报告中。