我正在使用CI2.0和PHP 5.3
我刚开始使用“Datamapper ORM”,它非常棒!!但是关于班级名称
,这是一个很大的问题我有一个名为“users”的数据库表,所以我的dm模型是“user”,我还有一个名为“user”的控制器?
所以在“用户”控制器中使用“用户”模型是不可能的!!
解决这个问题的最佳方法是什么?
非常感谢
最好的问候
答案 0 :(得分:16)
CodeIgniter的一个缺点是你不能为控制器,模型或库命名相同的东西。这主要是一个PHP问题,因为很明显你不能指出任何相同的东西,但可以通过两种方式避免它。
现在我可以推荐的是你仔细命名模型和库。
控制器 - 用户
图书馆 - 用户
模型 - User_model | User_m
这很烦人,但现在只是其中之一。
答案 1 :(得分:3)
所以使用“用户”模型 “用户”控制器是不可能的!!
不,不是,您需要更仔细地检查UserGuide;)
您可以为您的模型命名,而不是将其定义为:
如果您希望分配您的模型 你可以使用不同的对象名称 通过第二个参数指定它 加载功能:
$this->load->model('Model_name', 'fubar');
$this->fubar->function();
答案 2 :(得分:0)
答案 3 :(得分:0)
我建议:
为控制器保留用户和用户的字样,以便保持良好的网址。
与模型和控制器使用复数或单数一致。
答案 4 :(得分:0)
我在'Project'的情况下命名如下:
控制器:
项目扩展MY_Controller扩展CI_Controller
型号:
ProjectModel扩展了Model
在视图中
project / projectManager //作为主要内容
project / _projectItem //使用_ underscore作为subView
一切正常。
答案 5 :(得分:0)
我处理它的方法是用_controller
结束我的所有控制器名称。
我也使用datamapper,所以我有很多名称冲突。对于用户,我有一个用户(模型)和一个User_Controller
。
然后我只需添加:
$route['user'] = 'user_controller';
到config / routes.php文件并瞧。
唯一不足的是,如果你有一个包含大量页面的大型项目(比如我)你会得到一个巨大的routes.php文件,特别是如果你有很多具有大量参数的函数,路由可能会变得非常痛苦。