$this->loadModel('Menu');
$this->loadModel('SubMenu');
$this->loadModel('SubSubMenu');
$options['joins'] = array(
array('table' => 'sub_menus',
'alias' => 'sub_menus',
'type' => 'LEFT',
'conditions' => array(
'sub_menus.menu_id = Menu.id'
)
),
array('table' => 'sub_sub_menus',
'alias' => 'sub_sub_menus',
'type' => 'LEFT',
'conditions' => array(
'sub_sub_menus.sub_menu_id = sub_menus.id'
)
)
);
$options['fields'] = array('Menu.id','Menu.name', 'Menu.action', 'sub_menus.id','sub_menus.name', 'sub_menus.action','sub_sub_menus.id', 'sub_sub_menus.name', 'sub_sub_menus.action');
$menus = $this->Menu->find('all', $options);
$ menus array looks like this:
Array
(
[0] => Array
(
[Menu] => Array
(
[id] => 6
[name] => Bangladesh
[action] => bangladesh
)
[sub_menus] => Array
(
[id] => 2
[name] => Politics
[action] => politics
)
[sub_sub_menus] => Array
(
[id] => 1
[name] => submenu2
[action] => test
)
)
[1] => Array
(
[Menu] => Array
(
[id] => 9
[name] => Entertainment
[action] => entertainment
)
[sub_menus] => Array
(
[id] => 19
[name] => Music
[action] => music
)
[sub_sub_menus] => Array
(
[id] => 19
[name] => test
[action] => test1
)
)
[2] => Array
(
[Menu] => Array
(
[id] => 6
[name] => Bangladesh
[action] => bangladesh
)
[sub_menus] => Array
(
[id] => 2
[name] => Politics
[action] => politics
)
[sub_sub_menus] => Array
(
[id] => 20
[name] => AML
[action] => aml
)
)
[3] => Array
(
[Menu] => Array
(
[id] => 13
[name] => Comments
[action] => comments
)
[sub_menus] => Array
(
[id] => 35
[name] => Issuse
[action] => issuse
)
)
[4] => Array
(
[Menu] => Array
(
[id] => 6
[name] => Bangladesh
[action] => bangladesh
)
[sub_menus] => Array
(
[id] => 2
[name] => Politics
[action] => politics
)
[sub_sub_menus] => Array
(
[id] => 22
[name] => One
[action] => one
)
)
)
My expected array:
Array
(
[0] => Array
(
[Menu] => Array
(
[id] => 6
[name] => Bangladesh
[action] => bangladesh
)
[sub_menus] => Array
(
[0] => Array
(
[id] => 2
[name] => Politics
[action] => politics
[sub_menu2] => Array
(
[0] => Array
(
[id] => 1
[name] => submenu2
[action] => test
)
[1] => Array
(
[id] => 20
[name] => AML
[action] => aml
)
[2] => Array
(
[id] => 22
[name] => One
[action] => one
)
)
)
)
)
[1] => Array
(
[Menu] => Array
(
[id] => 9
[name] => Entertainment
[action] => entertainment
)
[sub_menus] => Array
(
[0] => Array
(
[id] => 19
[name] => Music
[action] => music
[sub_menu2] => Array
(
[0] => Array
(
[id] => 19
[name] => test
[action] => test1
)
)
)
)
)
[2] => Array
(
[Menu] => Array
(
[id] => 13
[name] => Comments
[action] => comments
)
[sub_menus] => Array
(
[0] => Array
(
[id] => 35
[name] => Issuse
[action] => issuse
)
)
)
)
Here what I want is to generate a tree of trees using a filter array. All sub_menu will be wrapped in a menu with the same menu [id], and all sub_sub_menu will be wrapped in a sub_menu with the same sub_menu [id]. I try a couple of days but no luck. I apologize if this is a very simple question or something like the one that should not be asked here. Thank you in advance.
user4101645
source
share