codeigniter - 编辑助手中设置的变量时,间接修改Codeigniter模型中的重载属性

标签 codeigniter error-handling models helper

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

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

$CI =& get_instance();

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

变量之一如下$data->errors=array();
这个想法是,如果我的模型中有错误,我可以设置一个错误
例如if($query->num_rows()!='1'){$this->error[]="This message does not exist !";}
然后在我的 Controller 中,我可以检查此变量是否已填充以及是否显示错误。

但是,这引发了错误

Message: Indirect modification of overloaded property Mail_model::$error has no effect



这个错误已经过去了。我已经对该错误进行了一些研究,但找不到适用解决方案的雷曼术语解释。

有人可以帮我吗?

最佳答案

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

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

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

如果要在模型和 Controller 之间传递消息(例如错误消息),则尝试使用全局变量可能不是最佳方法。

CodeIgniter的最佳选择是Flashdata-这就是存在flashdata的确切情况。您可以在CI userguide中阅读所有内容。

关于codeigniter - 编辑助手中设置的变量时,间接修改Codeigniter模型中的重载属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11639435/

相关文章:

php - CodeIgniter 表单验证不工作

php - 阅读页面上的特定帖子

jquery - 从JQuery错误中获取responseText错误值?

javascript - Backbone 模型应该是 View 模型、领域模型还是两者兼而有之?

c++ - 使用C++访问通过网卡传递的数据

php - codeigniter 无法在 Linux 上运行

php - 更新当前值大于旧值 codeigniter 的 mysql 数据库

javascript - 我的Promise捕获异常,我不知道如何打印错误消息

python - 如何使用pytest模拟完全重启