CakePHP SET库和HABTM提取

时间:2013-10-09 14:20:12

标签: cakephp has-and-belongs-to-many

我需要你的帮助,因为我无法在不执行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。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

试试这个或类似的东西

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

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