使用codeigniter 2.0和Datamapper时的类名冲突?

ahm*_*med 8 php database codeigniter codeigniter-2 codeigniter-datamapper

我在PHP 5.3中使用CI2.0

我刚开始使用"Datamapper ORM",它非常棒!! 然而,关于班级名称,这是一个很大的问题

我有一个名为"users"的数据库表,所以我的dm模型是"用户",而且我有一个名为"user"的控制器?

所以在"用户"控制器中使用"用户"模型是不可能的!

解决这个问题的最佳方法是什么?

非常感谢

最好的祝福

Phi*_*eon 16

CodeIgniter的一个缺点是你不能将控制器,模型或库命名为同一个东西.这主要是一个PHP问题,因为显然你不能说出任何相同的名称,但可以通过两种方式避免它.

  1. PHP命名空间 - 没有办法,它们只是PHP 5.3,如果实现的话,90%的社区都会启动.
  2. 控制器前缀 - 这是我想要添加的东西,但是......它会破坏每个人的东西.我们必须等到2.1至少对于那么大的改变.

现在我可以推荐的是你仔细命名你的模型和库.

控制器 - 用户
库 - 用户
模型 - User_model | User_m

这很烦人,但现在只是其中之一.


Jak*_*kub 3

\n

因此,在 \n \xe2\x80\x9cuser\xe2\x80\x9d 控制器中使用 \xe2\x80\x9cuser\xe2\x80\x9d 模型是不可能的!

\n
\n\n

嗯,不,不是,您需要更仔细地查看用户指南;)

\n\n\n\n

您可以为模型指定一个不同于最初定义的名称:

\n\n
\n

如果您希望为您的模型分配\n 不同的对象名称,您可以\n 通过加载函数的第二个参数指定它:

\n
\n\n
$this->load->model(\'Model_name\', \'fubar\');    \n$this->fubar->function();\n
Run Code Online (Sandbox Code Playgroud)\n