我正在尝试使用$admin->function()
代替$this->admin_model->function()
当我尝试在variable
中声明$admin=new Admin_model;
constructor
并在其他函数中使用它时会出错...
我的代码如下,我对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
。< / p>
答案 0 :(得分:0)
您正在尝试为模型提供别名(正如我所看到的)
您所要做的就是:
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()){