我是一名codeigniter初学者。我正在使用带有本地服务器的版本2.0.2(php 5.3),我有一个启动控制器,代码是这样的(仅用于测试):
<?php
class Start extends CI_Controller
{
var $base;
function _construct()
{
parent::_construct();
$this->base = $this->config->item('base_url');
}
function hello()
{
$data['base'] = $this->base;
print_r ($data);
}
}
当我导航到hello函数时,$data['base']
数组元素为空。当构造函数使用配置文件中的'base_url'填充它时,为什么会这样?
似乎变量$base
在构造函数之外不可用,但我无法理解为什么或如何修复。有人可以提出建议吗?
答案 0 :(得分:4)
你的构造函数应该是__construct()
(2个下划线)。
function __construct()
{
parent::__construct();
$this->base = $this->config->item('base_url');
}
另外,正如其他人提到的那样,如果您加载“url_helper”,则可以通过调用base_url
来获取base_url()
。
$this->load->helper('url');
$this->base = base_url();
答案 1 :(得分:1)
你知道吗?
$this->load->helper('url');
$base = base_url();
甚至在视图中:
<?php echo base_url(); ?>
答案 2 :(得分:1)
像这样使用:
class Start extends CI_Controller
{
private $base = '';
function _construct()
{
parent::_construct();
$this->base = $this->config->item('base_url');
}
function hello()
{
$data['base'] = $this->base;
print_r ($data);
}
}
或者在autoload.php中配置:
$autoload['helper'] = array('url');
然后您可以在代码中的任何位置使用 base_url(); 。