Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 用户';来自扩展控制器的角色_Php_Codeigniter - Fatal编程技术网

Php 用户';来自扩展控制器的角色

Php 用户';来自扩展控制器的角色,php,codeigniter,Php,Codeigniter,我在这里尝试做的主要是在仪表板控制器中。到目前为止,我已经使用Phil Sturgeon的模板库创建了索引函数,以构建仪表板作为主要内容视图。我有一些事情要考虑。我有管理员和基本用户可以看到仪表板。管理员将能够从仪表板内部看到基本用户可以看到的不同信息,如站点信息、待定注册等 我应该为不同类型的用户提供单独的仪表板视图吗 如果是,我如何从Admin_控制器访问user_数据,以便在仪表板的index函数中执行If语句检查,以查看他们是什么类型的用户 <?php if (!defined('

我在这里尝试做的主要是在仪表板控制器中。到目前为止,我已经使用Phil Sturgeon的模板库创建了索引函数,以构建仪表板作为主要内容视图。我有一些事情要考虑。我有管理员和基本用户可以看到仪表板。管理员将能够从仪表板内部看到基本用户可以看到的不同信息,如站点信息、待定注册等

我应该为不同类型的用户提供单独的仪表板视图吗

如果是,我如何从Admin_控制器访问user_数据,以便在仪表板的index函数中执行If语句检查,以查看他们是什么类型的用户

<?php
if (!defined('BASEPATH'))
    exit('No direct script access allowed');
class Admin_Controller extends CI_Controller
{
    public $data = array();
    public function __construct()
    {
        parent::__construct();
        $this -> load -> model('user_model', 'user');
        $user_id = $this -> session -> userdata('user_id');
        $user_data = $this -> user -> get($user_id);
        $this -> data['user_data'] = $user_data;
        $this -> template -> set_theme('saturn') -> set_layout('default', 'admin') -> set_partial('navigation', 'admin/partials/navigation') -> set_partial('header', 'admin/partials/header');
    }
}

<?php
if (!defined('BASEPATH'))
    exit('No direct script access allowed');
class Dashboard extends Admin_Controller
{
    public function __construct()
    {
        parent::__construct();
    }

    public function index()
    {
        $this -> template -> build('admin/dashboard', $this -> data);
    }
}

<代码> < P>我可以给出一个建议,因为您将有一个管理员帐户,它必须始终存在,认为它将是您的用户表的第一个记录(因为管理员和用户将是同一个表,并且将有不同的角色),所以ID将是1,我猜应该是这样,所以在您的仪表板控制器

public function index()
{
      if($this -> session -> userdata('user_id') == 1){
         $this -> template -> build('admin/dashboard', $this -> data);
      }else{
         //user dashboard.
      }

}
否则,您可以通过您的角色来定义它,比如admin have Role Id=1

我希望这对你有帮助

我应该为不同类型的应用程序设置单独的仪表板视图吗 用户

取决于仪表板结构。如果普通用户和管理员完全不同,那么最好为booth用户类型构建一个单独的仪表盘。如果有一些公共元素,可以在视图中使用If语句来检查用户类型并使用righ仪表板部件。这更多的是为了你的方便,而不是一个惯例

如果是,我如何从管理员控制器访问用户数据 我可以在 仪表板以查看他们是什么类型的用户

<?php
if (!defined('BASEPATH'))
    exit('No direct script access allowed');
class Admin_Controller extends CI_Controller
{
    public $data = array();
    public function __construct()
    {
        parent::__construct();
        $this -> load -> model('user_model', 'user');
        $user_id = $this -> session -> userdata('user_id');
        $user_data = $this -> user -> get($user_id);
        $this -> data['user_data'] = $user_data;
        $this -> template -> set_theme('saturn') -> set_layout('default', 'admin') -> set_partial('navigation', 'admin/partials/navigation') -> set_partial('header', 'admin/partials/header');
    }
}

<?php
if (!defined('BASEPATH'))
    exit('No direct script access allowed');
class Dashboard extends Admin_Controller
{
    public function __construct()
    {
        parent::__construct();
    }

    public function index()
    {
        $this -> template -> build('admin/dashboard', $this -> data);
    }
}
您应该将用户_数据数组传递给视图,而不是从中读取会话数据。查看部分od您的系统应始终直接从控制器获取所有数据,而不是从会话或任何其他应用程序组件获取