未定义的属性:Login_Controller::$user



为什么会出现此错误?我也已经在库中加载了数据库, 但它给出了错误

未定义的属性: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();
}
}

感谢您的帮助

  1. 更改此行
$check = $this->user->validate();

$check = $this->user_model->validate();
  1. 更新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_modelvalidate时,您会得到错误Undefined property: Login_Controller::$user

如果要使用变量传递第二个参数user加载模式方法如下:$this->load->model('user_model', 'user');

相关内容

  • 没有找到相关文章

最新更新