我在我的代码点火器设置中设置了一个登录帮助程序。
我得到了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对无效
这个错误让我难以理解。我已经对这个错误做了一些研究,但找不到雷曼兄弟的任何解释和适用的解决方案。
有人能帮我吗?
您已经加载了$CI变量作为对其自身的引用-其中=&
然后,您已经通过引用加载了变量,因为您使用了$CI->load->vars()
不需要将$data加载到$CI引用中。
如果你想在模型和控制器之间传递消息(比如错误消息),那么尝试使用全局变量可能不是最好的方法。
CodeIgniter的最佳选择是Flashdata——这就是Flashdata存在的确切原因。您可以在CI用户指南中阅读有关它的全部内容。