【发布时间】:2011-07-06 06:21:10
【问题描述】:
CodeIgniter 有一个方法$this->load->vars($array) 理想地用于父 Controller 中,以便直接在视图中提供对系统变量的全局访问。例如:
$this->data['username'] = "john";
$this->load->vars($this->data);
然后在视图中,您可以通过回显$username 轻松访问john。
我的问题是,是否可以在模型而不是控制器中使用$this->load->vars($array)?这将允许我从我的控制器中抽象出一些细节,使其更干净。我必须进行哪些更改才能使其正常工作?你会推荐它吗?你认为它破坏了 MVC 吗?
另外,我使用的是 Datamapper ORM,所以我的模型实际上扩展了 Datamapper 对象,而不是 Model 对象。
谢谢!
【问题讨论】:
-
我相信
load->vars()只会提取传入的变量。您打算在模型中动态创建变量吗? -
是的,没错,它会提取变量。更具体地说,我希望通过在对象上调用 Notify() 来触发通知。例如:$user->Notify('password_change_success')。我想根据传入的键在 Notify() 内部全局设置一条消息……但是,它属于 Datamapper 对象而不是 Controller,因此无法调用 load->vars() 。总之,我想知道是否可以在模型内部设置全局变量。
标签: codeigniter