CodeIgniter一个controller include另一个controller,在实例化时会报错

发布于 2022-09-03 09:43:07 字数 535 浏览 12 评论 0

Unable to locate the specified class: Session.php

报以上错误,stackOverflow上有这个问题,他被引用的controller 改为extends CI_Model就行了,但我是本来就要include controller的,没法那么做,请问怎么解决这个问题?


引用和被引用的controller之间,任意一个写上以下代码就不会报错,但只要把调用父类的构造函数那行解除注释,又会报错,这到底是为什么???


function __construct(){
    //parent::__construct();
}


引用controller是因为,这个controller里面写了我要用的方法,不想再在其它地方写一遍,就干脆直接引用了。

写了的方法是调用微信登录,因为微信登录是跳到微信,然后再跳回来的,所有肯定要有个接口接收跳回来的数据,所以肯定要写一个控制器,然后内部调用这个微信登录的时候,就不想另外写了,直接调用这个控制器

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

吻泪 2022-09-10 09:43:07

CI啊,我的菜。

楼主说写了微信的方法,要在不同的控制器调用这个方法,可以直接写在\application\libraries里,然后调用的时候,直接一个$this->load->libries('')就好了。
或者楼主可以直接写一个全局的方法,项目中的任何位置可以用方法名随时随地直接调用,这个方法可以放在system\core\common.php中,也可以写在自动加载的辅助函数里helpers

要说的就是楼主应该知道MVC的结构,三个不同的层作为独立的存在,想当年我也是和你一样的想法,问了一下大神,结果迎来劈头盖脸一顿骂:每一个控制器都有自己独立的作用,如果控制器和控制器间能够互相调用,那不就乱了套了,违背了MVC的设计原则。所以如楼上所说,遇到重复的方法就封装起来吧,哪怕封装在公共的控制器中,用$this->直接调用也好啊

邮友 2022-09-10 09:43:07

可能是因为你引用的时候相对路径变了吧,话说为什么需要引用controller?

怀念你的温柔 2022-09-10 09:43:07

为什么要引用另外个控制器?????

不如归去 2022-09-10 09:43:07

首先 第一个问题 :为什么要引用另外个控制器,重复的逻辑能不能放在Model或是library里

再回答一下题主的问题,Session.php你重复load了,应该是在你的父controller的construct。。。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文