Php 使用来自其他类的变量的控制器类
我试图找出如何处理这样一种情况:我有一个MY_控制器,后端控制器,当然后端扩展MY,我还有其他控制器,比如Login和其他扩展后端的较小控制器。我的问题是,如果您注意到登录控制器上需要能够访问后端控制器内部的变量?在这种情况下,如何使用该变量 在后端控制器中,我有:Php 使用来自其他类的变量的控制器类,php,codeigniter,Php,Codeigniter,我试图找出如何处理这样一种情况:我有一个MY_控制器,后端控制器,当然后端扩展MY,我还有其他控制器,比如Login和其他扩展后端的较小控制器。我的问题是,如果您注意到登录控制器上需要能够访问后端控制器内部的变量?在这种情况下,如何使用该变量 在后端控制器中,我有: <?php if (! defined('BASEPATH')) exit('No direct script access allowed'); class Backend_Controller extends MY_Co
<?php
if (! defined('BASEPATH')) exit('No direct script access allowed');
class Backend_Controller extends MY_Controller
{
function __construct ()
{
parent::__construct();
$this->load->library('session');
$cms_template = $this->config->item('cms_template');
$this->data['template'] = $cms_template;
}
}
如果您的意思是需要从后端控制器到登录控制器访问变量,因为您正在Login\u控制器
中扩展Backend\u控制器
,您可以执行以下操作:
在后端_控制器中:
public function __construct() {
parent::__construct();
$this->some_backend_var = "some_value_here";
//OR
ci()->some_backend_var = $this->some_backend_var = "some_value_here";
}
在登录控制器的某些功能中,您可以使用:
echo $this->some_backend_var; //shows "some_value_here"
您的意思是这样的吗。如果您指的是$cms\u template
,您应该能够通过以下几种方式之一访问它。假设$data
数组和$config
属性都不是private
,请尝试其中一种
$cms_template = $this->config->item('cms_template');
或
此外,如果构造函数仅代理父级::u construct()
,则不需要构造函数,因为默认情况下,我的前缀由Codeigniter加载,而不需要非前缀控制器。您需要包括对后端控制器类的引用,如下所示:
如果(!defined('BASEPATH'))退出('不允许直接脚本访问')
包括一次(APPPATH.controllers/backend_controller.php)
类登录扩展了后端控制器{
公共功能(构造)
{
父项::_construct();}
public function index()
{
$js_page_addons = '<script src="'.base_url().'assets/' .$cms_template. '/js/validation/login_form.js"></script>';
$page_view = 'login_view';
$this->data['js_page_addons'] = $js_page_addons;
$this->data['page_view'] = $page_view;
$this->load->view('cms/' . $cms_template . '/usermanagement/index_view', $this->data);
} }
公共功能索引()
{
$js_页面_插件=“”;
$page_view='login_view';
$this->data['js_page_addons']=$js_page_addons;
$this->data['page\u view']=$page\u view;
$this->load->view('cms/'。$cms\u template'./usermanagement/index\u view',$this->data);
} }
最后一行是什么意思?@KevinSmith您的
Login
类有一个冗余构造函数。移除它将产生相同的结果。
$cms_template = $this->data['template'];
public function index()
{
$js_page_addons = '<script src="'.base_url().'assets/' .$cms_template. '/js/validation/login_form.js"></script>';
$page_view = 'login_view';
$this->data['js_page_addons'] = $js_page_addons;
$this->data['page_view'] = $page_view;
$this->load->view('cms/' . $cms_template . '/usermanagement/index_view', $this->data);
} }