正如我读过的文章一样,在我的应用程序的所有控制器中验证用户的最佳方法是扩展我自己的扩展CI_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';
}
}
在members controller
<?php
class Members extends MY_Controller {
function index() {
$this->load->view('members');
}
}
在members view
我想访问我刚刚设置的这个变量,但我不知道如何。
我尝试像echo $foo
一样回复它$this->foo
答案 0 :(得分:5)
您需要将变量传递给视图文件。
<?php
class Members extends MY_Controller {
function index() {
$data = array('foo' => $this->foo)
$this->load->view('members', $data);
}
}
现在您可以在视图中引用$ foo。您可能需要将$ this-&gt; foo声明为protected。
您可以在http://codeigniter.tv/a-10/Extending-the-core-MY_Controller-and-beyond
找到有关MY_Controller的视频教程。答案 1 :(得分:0)
您是否尝试将变量传递给'成员视图'。
$this->load->view('members',$foo);
答案 2 :(得分:0)
您需要将$foo
设为受保护而非私有。
然后你就可以在扩展MY_Controller.php的控制器中访问它,如下所示:
$this->foo
答案 3 :(得分:0)
今天我第一次使用codeigniter 3.过去我使用过2.x版本很多次。现在我不能扩展<script>
$(document).ready(function () {
$('.datetimepicker').datetimepicker({
format: 'lll'
});
});
</script>
:
<强>应用/核心/ MY_Controller.php 强>
CI_Controller
<强>应用/控制器/的welcome.php 强>
class MY_Controller extends CI_Controller {
private $data = array();
function __construct() {
parent::__construct();
date_default_timezone_set("Europe/Zagreb");
$this->data['foo'] = "bar";
}
<强>应用/视图/ home.php 强>
(这是由class Welcome extends MY_Controller {
public function index() {
$this->data['main_content'] = 'home';
$this->load->view('template/template', $this->data);
}
加载的视图)
如果我尝试回显$this->data['main_content']
中声明的任何数据,我会收到错误。
MY_Controller