0

我需要您的帮助,因为如果不执行 foreach 循环,我无法从查询结果中提取我想要的结果。

我的查询返回一个像这样的数组:

array(
(int) 0 => array(
    'Event' => array(
        'id' => '1',
        'title' => 'Event title',
    ),
    'ShopstaffR' => array(
        (int) 0 => array(
            'id' => '1',
            'event_id' => '1',
            'shopstaff_id' => '1'
        ),
        (int) 1 => array(
            'id' => '2',
            'event_id' => '1',
            'shopstaff_id' => '2'
        )
    ),
    'Shopstaff' => array(
        (int) 0 => array(
            'id' => '1',
            'name' => 'Ben',
            'EventsShopstaff' => array(
                'id' => '1',
                'event_id' => '1',
                'shopstaff_id' => '1'
            )
        ),
        (int) 1 => array(
            'id' => '2',
            'name' => 'Alex',
            'EventsShopstaff' => array(
                'id' => '2',
                'event_id' => '1',
                'shopstaff_id' => '2'
            )
        )
    )
),
(int) 1 => array(
ETC ....

事件模型与 Shopstaff 模型具有 HABTM 关系,我想提取一个数组作为这个:

array(
(int) 0 => array(
    'Event' => array(
        'id' => '1',
        'title' => 'Event title, Shopstaff: Ben, Alex',
    ),
),
(int) 1 => array(
ETC ....

问题是我无法用set::combine方法做到这一点,因为我不知道会有多少 ShopStaff。

任何想法 ?

4

1 回答 1

0

试试这个或类似的东西

$var - array();   
$var['Event'] = Hash::extract( $queryResult, '{n}.Event' );

你为什么不直接拉出你想要的模型并从你的查询中取消绑定其他模型呢?Set::combine 使用 foreach,在某些情况下可能效率低下

于 2013-10-09T14:34:20.663 回答