【发布时间】:2016-10-13 13:13:41
【问题描述】:
我是 codeigniter 的新手,我正在尝试创建一个具有管理员、版主和用户角色的登录身份验证系统。
我的问题是我试图在“角色”上设置一个条件,它是数据库中的一个列。但是我不知道如何使用和比较列角色的值。
我写了以下代码,但出现错误:
[严重性:错误消息:调用数组上的成员函数 result_array()]
我的代码是:
<?php
// step no 4 create a new controller where form post after submission.
class verify extends CI_Controller{
function __construct(){
parent::__construct();
$this->load->helper('url');
$this->load->model('user');
}
function login(){
//step no 5 create a new method in verify controller
$username = $this->input->post('username');
$userpass = $this->input->post('password');
//step 9 take value back in answer variable from model and print message
$answer = $this->user->usergetdata($username,$userpass,'admin');
$data = $answer->result_array();
if($answer){
if($data[0]['role']=='admin'){
redirect('admin_page');
}
}else
{
echo "username or Password is wrong";
}
}
}
?>
<!-- begin snippet: js hide: false console: true babel: false -->
【问题讨论】:
-
我们可以看看你的用户模型吗?
-
你能告诉我们你的用户获取数据方法是什么吗?理想情况下,您希望有一个模型方法,它只返回一个说 login_status 和角色的数组并测试 logib_status,如果满意,然后检查角色类型。只是一些想法!尝试将所有数据库内容保留在模型中。我看到它偷偷溜进了你的控制器。
-
@router 请
var_dump($answer);并显示此结果。 -
这里是模型代码 @Blinkydamo class user extends CI_Model{ function __construct(){ parent::__construct(); } function usergetdata($username,$userpass,$role){ $this->db->select(); $this->db->from('user'); $this->db->where('username',$username); $this->db->where('userpass',$userpass); $query= $this->db->get(); if($query->num_rows()==1){ return $query->result(); }else { 返回假; } } } ?>
标签: php database codeigniter