我试图使用$admin->function()
而不是$this->admin_model->function()
当我试图在constructor
中声明variable
$admin=new Admin_model;
并在其他函数中使用它时,它会给出错误。我的代码如下,我不太了解OOP
的概念,有人可以帮助我。
class Admin extends CI_Controller {
var $admin;
function __construct() {
parent::__construct();
$this->load->model('admin_model');
$admin=new Admin_model;
}
public function index($value='')
{
if(!$admin->is_admin_logged_in()){
redirect('admin/login?r='.urlencode(current_url()));
}
$data['loggedin']=TRUE;
$data['account']=$this->session->all_userdata();
$this->load->view('pages/admin-home',isset($data)?$data:NULL);
}
}
目前我正在使用这个方法
public function login()// this function belongs to the same controller mentioned above
{
$r=isset($_GET['r'])?urldecode($_GET['r']):'admin';
$admin=new Admin_model;
if($admin->is_admin_logged_in()) redirect($r);
}
我不想在每个函数中声明$admin=new Admin_model;
,并希望使代码看起来很好和干净,所以也不喜欢使用$this->admin
或$this->admin_model
。
您正在尝试为模型提供别名(正如我所看到的)
你所要做的就是:
class Admin extends CI_Controller {
function __construct() {
parent::__construct();
$this->load->model('admin_model', 'admin');
}
public function index($value='')
{
if(!$this->admin->is_admin_logged_in()){
redirect('admin/login?r='.urlencode(current_url()));
}
$data['loggedin']=TRUE;
$data['account']=$this->session->all_userdata();
$this->load->view('pages/admin-home',isset($data)?$data:NULL);
}
}
注意这里给出了模型的别名
$this->load->model('admin_model', 'admin');
以及如何使用
if(!$this->admin->is_admin_logged_in()){