-2
我在我的应用程序中有一个主菜单,它加载取决于我从我的数据库中的表验证用户的角色,但我必须重新创建此菜单我每次调用一个新的控制器,这里是我做的方式:CodeIgniter维护数据通过控制器
用户控制器:
class User extends Ci_Controller {
function __construct(){
parent::__construct();
if (!$this->session->userdata('session_user')) {
$this->session->set_flashdata("mensaje", 'No cuenta con permisos *');
redirect();
$this->session_usuario = 1;
}
$session_data = $this->session->userdata('session_user');
$image = $session_data['img'];
$nickname = $session_data['nick'];
$res = "";
$this->layout->setLayout('layout/admin');
$this->layout->setImage(base_url().$image);
$this->layout->setNick($nickname);
$data['module'] = $this->usuarios_model->seleccionarModulos($session_data['perfil']);
for ($i=0; $i < count($data['module']) ; $i++) {
$info['functionality'] = $this->usuarios_model->seleccionarFuncionalidades( $session_data['usuario'], $data['module'][$i]['id']);
$data['module'][$i]['route'] = $this->load->view($data['module'][$i]['route'], $info, true);
}
foreach ($data['module'] as $key => $value) {
$res .= $value['route'];
}
$this->layout->setMenu($res);
}
,准确的支持控制器相同:
class Support extends Ci_Controller {
private $user;
private $permiso;
private $order;
function __construct(){
parent::__construct();
if (!$this->session->userdata('session_user')) {
$this->session->set_flashdata("mensaje", 'No cuenta con permisos *');
redirect();
$this->session_usuario = 1;
}
$session_data = $this->session->userdata('session_user');
$image = $session_data['img'];
$nickname = $session_data['nick'];
$res = "";
$this->layout->setLayout('layout/admin');
$this->layout->setImage(base_url().$image);
$this->layout->setNick($nickname);
$data['module'] = $this->usuarios_model->seleccionarModulos($session_data['perfil']);
for ($i=0; $i < count($data['module']) ; $i++) {
$info['functionality'] = $this->usuarios_model->seleccionarFuncionalidades( $session_data['usuario'], $data['module'][$i]['id']);
$data['module'][$i]['route'] = $this->load->view($data['module'][$i]['route'], $info, true);
}
foreach ($data['module'] as $key => $value) {
$res .= $value['route'];
}
$this->layout->setMenu($res);
}
我知道它的错误的方式解决这个问题,我想改进它并重用代码。