我是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 -->
在模型中
$res = $this->db->get();
return $res->result_array();
然后申请
foreach($answer as $a)
{
var_dump( $a );
}
使用$a
获取值
$data = json_decode(json_encode($answer),true);
print_r($data);
用这个你的结果转换成数组格式
您正在调用-
要么删除-
调用脚本并使用-
希望这有助于澄清一些事情。
模特
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;
}
else
{
return false;
}
}
}
控制器
$answer = $this->user->usergetdata( $username,$userpass,'admin' );
$data = $answer->result_array();