我需要你的帮助,因为我无法在不执行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。
有什么想法吗?
答案 0 :(得分:0)
试试这个或类似的东西
$var - array();
$var['Event'] = Hash::extract( $queryResult, '{n}.Event' );
为什么不拉动你想要的模型并从查询中取消绑定其他模型? Set :: combine使用foreach,在某些情况下可能效率低下