【问题标题】:Load view depending user type logged根据记录的用户类型加载视图
【发布时间】:2013-02-08 01:53:24
【问题描述】:

我实际上在我的项目中使用 Codeigniter 和 php,当用户登录页面时,如果普通用户是管理员,但会更改其中的某些内容,则加载相同的视图。

我认为将一个变量传递给控制器​​并根据它加载视图,并根据用户进行更改。但它的 url 似乎不太酷,让我们这样吧:

        public function dc($q="")
    {
        if($q=="o")
        {

        // Here i have to change some parts of the template for normal users
        $this->load->view('Main/template_main', $data, FALSE);
        }elseif ($q=="a") {
            // Here i have to change some parts of the template for admins
        $this->load->view('Main/template_main', $data, FALSE);

网址就像 www.xxx.com/controller/o 或 /a 我想看到它像 www.xxx.com/controller 因为它是索引页面..

感谢您的宝贵时间..

【问题讨论】:

  • 如果用户登录与否,我不会决定 url 段,你肯定有一些会话设置,对吧?使用它来决定加载哪个视图
  • 问题标题与您要问的内容不同。通常 MVC 框架不是这样工作的。 URL 中应该有一个指示符,用于显示应该加载的控制器。如果你想做那种事情,你可以在routes.php 中设置它。喜欢$route['admin/(:any)'] = "admin/$1";。我仍然怀疑你的问题。

标签: php codeigniter


【解决方案1】:

您应该按照 Damien 建议的方式处理此问题。您的控制器应设置会话数据,如下所示:

$this->session->set_userinfo('is_admin', FALSE);

然后,当您检查了登录凭据后,您可以在用户是管理员时设置会话数据:

$this->session->set_userinfo('is_admin', TRUE);

然后,您可以在您的页面上根据此值设置谁可以看到什么。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-19
    • 2013-12-11
    • 2020-07-21
    • 2015-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多