为什么会出现此错误?我也已经在库中加载了数据库, 但它给出了错误
未定义的属性:Login_Controller::$user
我无法进行登录验证 这是图片
这是我的自动加载
$autoload['model'] = array();
$autoload['helper'] = array('url');
$autoload['libraries'] = array('database', 'session','form_validation');
这是我的Login_Controller
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Login_Controller extends CI_Controller
{
public function __construct() {
parent::__construct();
}
public function index()
{
$this->load->view('login');
}
function verify()
{
$this->load->model('user_model');
$check = $this->user->validate();
//$this->load->library('database');
if($check)
{
$this->load->view('admin/main');
}
else
{
$this->load->view('login');
$message = "Username and/or Password incorrect.\nTry again.";
echo "<script type='text/javascript'>alert('$message');</script>";
}
}
}
这是我的模型
class User_model extends CI_Model
{
public function __construct() {
parent::__construct();
}
function validate()
{
$array['username'] = $this->input->post('username');
$array['password'] = $this->input->post('password');
$this->db->get_where('user',$array)->result();
}
}
感谢您的帮助
- 更改此行
$check = $this->user->validate();
自
$check = $this->user_model->validate();
- 更新
validate()
函数如下
function validate(){
$array['username'] = $this->input->post('username');
$array['password'] = $this->input->post('password');
return $this->db->get_where('user',$array)->num_rows();
}
更新$this->load->model('user_model');
$this->load->model('user_model', 'user');
并将行$this->db->get_where('user',$array)->result();
更新为return $this->db->get_where('user',$array)->result();
User_modelvalidate
方法。
默认情况下,当您加载用户模型$this->load->model('user_model');
时User_model它会将类对象分配给Login_Controller
中的user_model
变量。您可以作为$this->user_model
访问。
因此,当您使用$this->user->validate();
访问类方法User_model
validate
时,您会得到错误Undefined property: Login_Controller::$user
。
如果要使用变量传递第二个参数user
加载模式方法如下:$this->load->model('user_model', 'user');