在助手中编辑变量集时,间接修改代码点火器模型中的重载属性



我在我的代码点火器设置中设置了一个登录帮助程序。

我得到了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用户指南中阅读有关它的全部内容。

最新更新