【问题标题】:codeigniter Call to a member function is_admin() on a non-objectcodeigniter 在非对象上调用成员函数 is_admin()
【发布时间】:2015-05-04 20:22:48
【问题描述】:

当我尝试登录到我要求它验证凭据的管理页面时出现此错误

这里有一些sn-ps:

// Tank_Auth.php Line 71
$this->ci->session->set_userdata(array(
    'is_admin'  => (bool) $user->is_admin, // added
    'user_id'   => $user->id,
    'username'  => $user->username,
    'status'    => ($user->activated == 1) ? STATUS_ACTIVATED : STATUS_NOT_ACTIVATED,
));
function is_admin()
{
    return $this->logged_in() && $this->ci->session->userdata('is_admin') === TRUE;
}


// controllers/auth.php Line 30
function login()
{
    if ($this->tank_auth->is_admin()) {
        redirect('admin');
    } elseif ($this->tank_auth->is_logged_in()) {
        redirect('user');
    }

所以如果我将它添加到我的登录页面,它会验证我是管理员:

public function index() {

   if ($this->tank_auth->is_admin())  {
        redirect('admin/dashboard');
    } else {
    $this->load->view('admin/vwLogin');
    }
}

有人可以帮我解决这个问题吗?我现在真的迷失了如何解决这个问题。

【问题讨论】:

  • 您在哪一行得到错误?是这个吗:is_admin' => (bool) $user->is_admin
  • 对不起,我没有正确指定,但我在这里收到错误:$this->tank_auth->is_admin()

标签: php codeigniter authentication


【解决方案1】:

在codeigniter中,

在调用模型之前(tank_auth:我假设这是一个模型),你需要加载那个文件。

$this->load->model('tank_auth');

PS:您的模型文件必须在模型文件夹中。如果里面还有一个文件夹,那么:

$this->load->model('/extra_folder_name/tank_auth');

【讨论】:

  • 谢谢它现在可以工作,我想是因为我现在得到了这个:这个网页有一个重定向循环,这是我的浏览器而不是 codeigniter,所以我猜它可以工作
猜你喜欢
  • 2011-12-23
  • 2013-08-23
  • 2012-01-09
  • 2013-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-25
  • 1970-01-01
相关资源
最近更新 更多