【发布时间】:2009-12-15 10:47:50
【问题描述】:
我有一个具有不同方法的控制器,但它们都必须设置一个包含要显示在视图框中的项目列表的变量,我从数据库中提取数据并设置 $data['categories']。
我可以设置一次并让所有方法都可以看到它吗?
【问题讨论】:
标签: php codeigniter scope
我有一个具有不同方法的控制器,但它们都必须设置一个包含要显示在视图框中的项目列表的变量,我从数据库中提取数据并设置 $data['categories']。
我可以设置一次并让所有方法都可以看到它吗?
【问题讨论】:
标签: php codeigniter scope
除此之外,如果您仅使用 $this->data 将值获取到您的视图中,而不是这样做:
$this->data->something = 'whatever';
然后做
$this->load->view('something', $this->data);
你可以改为:
$this->load->vars('something', 'whatever');
然后稍后使用正常的本地化 $data 数组(或任何您喜欢的),因为该变量将对所有加载的视图文件全局可用。
我并不是说任何一种方式都更好,只是让您知道还有其他方法可以完成。我个人混合使用这些方法。 :-)
【讨论】:
使其成为类的属性
class Controller {
protected $data;
并使用 '$this' 在您的方法中访问:
class Controller {
function foo() {
$this->data etc...
【讨论】:
$this->data 而不是$data。谢谢。