用户
 找回密码
 入住 CI 中国社区
搜索
查看: 4925|回复: 7
收起左侧

controller目录与model目录里不能有相同的文件名?

[复制链接]
发表于 2008-1-20 10:23:15 | 显示全部楼层 |阅读模式
我在controller目录建了一个upload.php的控制器,在model目录里也建了一个upload.php模型,用controller里的upload.php调用model里的upload模型时报错,把model里的upload.php改成uploads.php,里边的类也相应更改,运行就正常了。
  看来在controller里调用model里的类时命名不能一样,新手,没办法,弄了老半天才发现这个原因,如果你也是新手,不要再犯我同样的错误。
发表于 2008-1-20 13:21:47 | 显示全部楼层
对呀,PHP里变量名不能重复呀!你可以LOAD的时候重命名控制器或者模型。
具体可以参考文档里的。
发表于 2008-1-20 13:27:47 | 显示全部楼层
调用模型时是用 Model_name(比如upload的话就是Upload_model),这是用户手册里写着的。http://codeigniter.com/user_guide/general/models.html
发表于 2008-1-20 13:34:01 | 显示全部楼层
CTO说的对,要遵守命名规则~~~~
发表于 2008-1-21 13:09:02 | 显示全部楼层
每一个controller都是一个CI的实例,在实例里面的每一个成员名称不允许和CI的标准成员重复
你load一个叫foobar的lib和load一个叫foobar的model

在当前实例里面都被定义为 $this->foobar

引起CI实例的冲突
发表于 2008-4-1 21:07:56 | 显示全部楼层
这个问题的本质原因是你创建了两个类名相同的类,在PHP里当然是不行的。最好的办法就是使用XXX_model或XXXModel的方式来命名Model
发表于 2008-4-2 07:31:56 | 显示全部楼层
对。。不能相同。:)。。在php中遵守java中的命名方法,永远也不会重复。。
发表于 2008-4-3 18:06:22 | 显示全部楼层
好贴!各位大佬都来给解释。。。

新人我很受鼓励呀!

本版积分规则