hola,
existen varias formas, las extremistas y las menos extremistas, las mas extremistas te diran que crees una libreria que haga las consultas a la db y en el controlador la invoques y se la pases a tu layout:
Código PHP:
Ver original//archivo menu.php
class menu {
public function crearMenu(){
//codigo que genera el menú
}
}
//en tu controlador:
include_once('menu.php');
$menu = new menu();
$menu->crearMenu();
otros te dirán que en todos los controladores tienes que crear el código para el menu, es decir un método privado que llame al modelo que te devuelve el menu, y llames a este método privado en todos los métodos públicos que pasen datos al layout algo asi:
Código PHP:
Ver originalpublic function index(){
$this->menu();
}
private function menu(){
$menu = new MenuModelo();
return $menu->armarmenu();
}
y otros diran que lo mejor es hacer un helpers (al estilo cake o CI) que arme el menu.
Y por último, otros te diran que uses un sistema de plantilla que permita la carga de bloques dinamicos.
No sé si con esto te aclaré exactamente tu duda, pero básicamente existen x cantidad de forma de solucionarlo.