Php 索引函数中未初始化点火器数据
我试图在控制器的索引函数中初始化数据,以便初始化后的数据可以在控制器的后续函数中使用。但问题是,当我试图从其他功能访问数据时,数据没有显示出来。所有这些都只是遵循一种面向对象的模式 这是我的密码Php 索引函数中未初始化点火器数据,php,oop,codeigniter,Php,Oop,Codeigniter,我试图在控制器的索引函数中初始化数据,以便初始化后的数据可以在控制器的后续函数中使用。但问题是,当我试图从其他功能访问数据时,数据没有显示出来。所有这些都只是遵循一种面向对象的模式 这是我的密码 class Dashboard extends CI_Controller { private $account_data; /*Declaration*/ private $profile_data; function __construct() { //
class Dashboard extends CI_Controller
{
private $account_data; /*Declaration*/
private $profile_data;
function __construct() {
// code...
}
function index() /*Here I am initializing data*/
{
$this->load->model('db_model');
$this->account_data = $this->db_model->get_row();
$this->profile_data = $this->db_model->get_row();
$this->load->view('user/dashboard');
}
function function account_details()
{
print_r($this->account_data); // This displays nothing
}
/*other function...*/
}
其思想是一次获取数据并将其用于其他函数,若数据再次更新,则调用函数对其进行初始化
但这是行不通的。请帮帮我。还建议我是否遵循正确的方法。
谢谢您的时间。索引方法不是初始值设定项,它的默认页面/sub_方法, 如果将url中的“*account\u details*”称为
index.php/dashboard/account\u details
,则不会调用索引
尝试将代码放在构造函数上
class Dashboard extends CI_Controller
{
private $account_data; /*Declaration*/
private $profile_data;
function __construct() { /*Here I am initializing data*/
parent::CI_Controller(); // Thank you Sven
$this->load->model('db_model');
$this->account_data = $this->db_model->get_row();
$this->profile_data = $this->db_model->get_row();
}
function index()
{
$this->load->view('user/dashboard');
}
function function account_details()
{
print_r($this->account_data); // This displays nothing
}
/*other function...*/
}
注意:如果不需要此控制器的所有方法,请不要在_construct()上进行模型或其他计算
创建一个私有方法,如“model\u initializer()
”,将这些代码放在这个作用域上,然后用其他方法调用它,如$this->model\u initialize()代码>如果需要
感谢yo Sesama Sesame的注意,索引方法不是初始值设定项,它的默认页面/sub_方法,
如果将url中的“*account\u details*”称为index.php/dashboard/account\u details
,则不会调用索引
尝试将代码放在构造函数上
class Dashboard extends CI_Controller
{
private $account_data; /*Declaration*/
private $profile_data;
function __construct() { /*Here I am initializing data*/
parent::CI_Controller(); // Thank you Sven
$this->load->model('db_model');
$this->account_data = $this->db_model->get_row();
$this->profile_data = $this->db_model->get_row();
}
function index()
{
$this->load->view('user/dashboard');
}
function function account_details()
{
print_r($this->account_data); // This displays nothing
}
/*other function...*/
}
注意:如果不需要此控制器的所有方法,请不要在_construct()上进行模型或其他计算
创建一个私有方法,如“model\u initializer()
”,将这些代码放在这个作用域上,然后用其他方法调用它,如$this->model\u initialize()代码>如果需要
感谢yo Sesama Sesame的提醒,你说它不起作用是什么意思?应该在帐户详细信息之前调用该索引吗?控制器中的方法以不同的执行方式工作,除非它是构造函数或您从另一个方法中调用方法。这里的index
和account\u details
是在不同的执行中访问的account\u details
不知道index
不起作用是什么意思?应该在帐户详细信息之前调用该索引吗?控制器中的方法以不同的执行方式工作,除非它是构造函数或您从另一个方法中调用方法。在这里,index
和account\u details
是在不同的执行中访问的account\u details
不知道index
还请注意,将模型逻辑计算留在controler构造函数中并不总是一个好选择。谢谢你,我为自定义初始值设定项添加了一个注释。我想您需要首先调用父(CI_控制器)构造函数,否则这在新版本的CI中会过时吗?哦。对,我直接从问题中复制了代码。现在添加。谢谢,非常感谢你们。请您详细说明为什么在构造函数内调用模态逻辑不是一个好的做法。请注意,将模型逻辑计算留在Controller构造函数内并不总是一个好的选择。谢谢Sesama Sesame,我为自定义初始值设定项添加了一个注释。我想您需要调用父级(CI_控制器)构造函数还是在新版本的CI中已过时?哦。对,我直接从问题中复制了代码。现在添加。谢谢,非常感谢你们。请您详细说明为什么在构造函数中调用模态逻辑不是一个好的实践。