2

我在我的 codeigniter 设置中设置了一个登录助手。

我得到了 codeigniter 实例,调用了一个模型,并设置了一些变量。

$CI =& get_instance();

然后我使用$CI->load->vars($data);使变量在我的所有模型和视图中可用。

其中一个变量如下$data->errors=array();

这个想法是,如果我的模型中有错误,我可以设置一个错误,例如if($query->num_rows()!='1'){$this->error[]="This message does not exist !";}

然后在我的控制器中,我可以检查此变量是否已填充以及是否显示错误。

然而,这抛出了错误

消息:间接修改重载属性 Mail_model::$error 无效

这个错误超出了我的想象。我已经对该错误进行了一些研究,但无法找到任何适用解决方案的雷曼术语解释。

谁能帮帮我?

4

1 回答 1

1

您已将 $CI 变量加载为对其自身的引用 - 使用 =&

然后您通过引用加载了变量 - 因为您使用了 $CI->load->vars()

无需将 $data 加载到 $CI 引用中。

如果您想在模型和控制器之间传递消息(例如错误消息) - 那么尝试使用全局变量可能不是最好的方法。

CodeIgniter 的最佳选择是Flashdata——这正是 flashdata 存在的确切场景。您可以在 CI 用户指南中阅读所有相关信息

于 2012-07-25T00:24:40.113 回答