Php 在一个变量中声明类的codeigniter
我尝试使用Php 在一个变量中声明类的codeigniter,php,codeigniter,Php,Codeigniter,我尝试使用$admin->function()而不是$this->admin\u model->function() 当我试图声明一个变量时$admin=newadmin\u模型并在它给出错误的其他函数中使用它。。 下面给出了我的代码,我不太了解OOP的概念,请有人帮忙 class Admin extends CI_Controller { var $admin; function __construct() { parent::__construct();
$admin->function()
而不是$this->admin\u model->function()
当我试图声明一个变量时
$admin=newadmin\u模型在构造函数中使用code>并在它给出错误的其他函数中使用它。。
下面给出了我的代码,我不太了解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()//此函数属于上述同一控制器
{
$r=isset($\u-GET['r'])?urldecode($\u-GET['r']):'admin';
$admin=新的admin_模型;
如果($admin->is\u admin\u logged\u in())重定向($r);
}
我不想声明$admin=newadmin\u模型
在每一个函数中,并且希望使代码看起来良好和干净,因此也不喜欢使用$this->admin
或$this->admin\u 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()){
你不明白我想说什么,因为我的问题令人困惑,我已经更新了问题,请看一看。我理解了,但正如前面提到的,我不想使用$this
。请再次检查这个问题…它总是使用这个,因为它表示变量属于类。关于您想要什么,我理解的是您想要创建模型的别名,这样无论何时更改模型名称,您都不需要通过所有代码来更改$this->admin\u model->function()。我为您提供的代码“创建给定模型的别名,该别名可以在整个控制器中使用。因此,您需要做的不是$this->admin\u model->function(),而是$this->alias->function(),是的,它应该始终包含$this。