-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);
}
我知道它的錯誤的方式解決這個問題,我想改進它並重用代碼。