回想起编码器中的构造

时间:2015-08-31 18:27:43

标签: codeigniter

如何调用构造,因为它包含页面的所有必需数据?

class Abc extends CI_Controller
{
       public function __construct()
       {
            parent::__construct();
            $this->load->model('xyz_m');
            $this->data['info'] = $this->xyz_m->get(); //get data
       }

       public function 123()
       {
          /*view page code*/
       }

       public function 456()
       {
          /*insert code here*/

          $this->123(); // redirect, need to load 123() with updated data from construct.
       }
}

那么,如何让__construct再次启动,以便从数据库中获得新的更新结果?

1 个答案:

答案 0 :(得分:1)

您应首先使用字母命名方法,即方法名称的约定使用描述性词getProducts()get_books,否则您将使用数字作为方法名称时出现PHP错误。因此,在您的情况下,方法名称应该类似于a123()b_456()。 第二件事,关于您的需求,因为您使用模型将数据从数据库分配到数组$this->data,您可以使用它:

class Abc extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();
        $this->load->model('xyz_m');
        $this->data['info'] = $this->xyz_m->get(); //get data
    }

    public function a123()
    {
        $this->load->view('a123_view', $this->data);//loading file APPPATH . 'a123_view.php' and passing created array to it
    }

    public function b_456()
    {
        /*insert code here*/

        $this->a123(); // redirect, need to load 123() with updated data from construct.
    }
}

APPPATH . 'a123_view.php'

<?php var_dump($info);//here you would call key of array you passed from controller as variable ?>

检查CodeIgniter documentations中的基础知识。所有这些都在General Topics section中进行了描述。