从MY_Controller CodeIgniter访问变量

Joe*_*ito 0 variables codeigniter

正如我读过的文章一样,在我的应用程序的所有控制器中验证用户的最佳方法是扩展我自己的扩展CI_Controller的Controller

但我不能让它发挥作用.

我拥有的是一个members_controller扩展我的MY_Controller.

MY_Controller我有这段代码,只是为了测试我是如何利用这个.

<?php

class MY_Controller extends CI_Controller {

private $foo;

    function __construct() {
        parent::__construct();
        $this->foo = 'hello world again';
    }

}
Run Code Online (Sandbox Code Playgroud)

在我的 members controller

<?php
class Members extends MY_Controller {
    function index() {
         $this->load->view('members');
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的 members view

我想访问我刚设置的这个变量,但我不知道如何.

我试着像这样回应它echo $foo,像这样$this->foo

但都没有工作.非常感谢!!

小智 5

您需要将变量传递给视图文件.

    <?php
    class Members extends MY_Controller {
        function index() {
             $data = array('foo' => $this->foo)
             $this->load->view('members', $data);
        }
    }
Run Code Online (Sandbox Code Playgroud)

现在你可以在视图中引用$ foo.您可能需要将$ this-> foo声明为protected.

有关MY_Controller的视频教程,您可以在http://codeigniter.tv/a-10/Extending-the-core-MY_Controller-and-beyond找到它们.