表前缀是不是没有支持

你好,刚开始使用yii。参考文档,用 model User 发现我的数据库里的项目很多,都是通过不同的表前缀来区分的。因此有没有一个更好的设置方法来设定表前缀。我看了一篇文章,需要修改很多代码。觉得那样以后可能有问题。

‘db’=>array(

		'connectionString'=>'mysql:host=?????;dbname=test',


	    'username' =&gt; '<img src='http://www.yiiframework.com/forum/public/style_emoticons/default/huh.gif' class='bbc_emoticon' alt='???' />??',


	    'password' =&gt; '<img src='http://www.yiiframework.com/forum/public/style_emoticons/default/huh.gif' class='bbc_emoticon' alt='???' />???',


	  


	),

‘params’ => array(

        'tablePrefix' =&gt; 'yiidemo_'   //最好有个这样的表前缀定义,不知道是不支持,还是我没有找到。打扰qiang了


    ),

你可以参看一下这篇文章:http://www.zhex.net/yii-framework-add-table-prefix-for-activereord.html

http://www.zhex.net/yii-framework-add-table-prefix-for-activereord.html

引用一下这篇帖子的留言

你可以在protected目录下添加extensions目录,然后用import在config文件中导入这个目录,这样你在这个目录下的扩展都会被自动读取。 由于这个是扩展功能,脚手架只能一些基本功能,不可能什么都依赖脚手架。 如果楼上有兴趣,可以重新写一个支持表扩展的脚手架

自己扩展的话,这样的话脚手架就不能用了吧。而且总感觉并非官方的解决方式。

其实既然yii采用一个核心可以支持多个应用的方式,那么在数据库这里也应该支持表前缀。希望能够在下一个版本加上。

多站点的支持上drupal做的就比较好。 呵呵。谢谢qiang能这么快的回复。主要是我们的项目都是短平快的项目,因此一个库可能有几十个小项目。以前都用drupal.但是drupal操作数据库过于频繁,因此正在寻求一种更为快速,高效的解决方式。

因为你有很多项目,强烈建议你通读http://www.yiiframework.com/doc/cookbook/41/

它能帮你打造符合自己需求的脚手架代码。

之所以一直没提供表前缀的支持,不是因为太难,而是因为太简单(指对AR提供这个功能)。另外,真正做项目或多或少都要手工写些SQL,这种情况你如何解决表前缀的问题呢?

参考drupal的处理方式 所有的sql 表名用 {} 括起来例如 $sql = ‘SELECT * FROM {users}’;

                                             db_query(&#036;sql);

表前缀在配置文件中设定好 $db_prefix = ‘t1_’。在真正查询开始前会去替换这个sql语句中的表名。

可能这个功能还是加上比较好。因为你知道国内很多空间商只提供一个数据库。这样想建立多个应用,只能用表前缀来区分。

而且多数php程序员可能都是处于能够完成项目,但是还不能对框架自己定制扩展。因此,如果要自己去扩展,占用了太多的开发成本。

我们会考虑提供这个支持的,关键是如果要支持,那么就要完美的支持。

谢谢,qiang,有一个官方的支持还是比自己扩展来得踏实。很有必要啊。