Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 索引函数中未初始化点火器数据_Php_Oop_Codeigniter - Fatal编程技术网

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中已过时?哦。对,我直接从问题中复制了代码。现在添加。谢谢,非常感谢你们。请您详细说明为什么在构造函数中调用模态逻辑不是一个好的实践。