Yii使用PHP代码而不是gii工具生成模型文件

时间:2013-08-09 10:05:16

标签: php mysql yii gii

我遇到以下主题的实际问题:

我正在使用Yii框架创建社交网络,并且对于每个用户,我正在生成一堆以用户ID开头的数据库表,因此数据库表格如下:13_my_firends。

关键是,通过这样做,我无法使用gii工具生成某个模型,我真的需要这些表的一些模型来建立一些关系以避免内部连接,所以我猜问题是这样的:< / p>

- &GT;如何使用php或Yii代码创建模型文件,并在该代码中更改“public function relation(){}”方法以添加我的关系?

修改

我只是在考虑这个问题:是否有可能将关系添加到父级而不是儿子?我的意思是......我可以改变主DB表(我的情况是女巫是sys_accounts - 这个有一个模型),如: - &GT;在另一个方法中调用relations()方法 - &GT;制作关系数组(有点像连接)

所以基本上就像......只在我想要的时候改变了relations()方法。可能吗?如果是这样,怎么样?

1 个答案:

答案 0 :(得分:4)

您可以自定义gii工具并使其动态生成

等模型
Yii::app()->getModule('ssgii')->SSGenModel($dynamictableName, $dynamicModelName);

public function SSGenModel($tableName, $modelName){
        $_ccodeGen = $this->controllerMap;

        $ccodeGen = new CCodeGenerator('', null);

        $ccodeGen->codeModel = 'ssgii.generators.model.ModelCode';

        $model=$ccodeGen->ssAutoGenModel($tableName, $modelName);
        return ($model);

    }

还需要更多更新才能使其正常运行。但是根据你的要求,我读到的东西似乎不符合你的需要。

你已经期待很多东西能够动态你的关系,而且Yii提供的东西似乎更加必要,你应该理解模板知识。 我可以建议生成器工具,帮助开发人员构建自己的模板源代码,然后您可以读取您的数据库结构和模式等,并使您需要的任何模型模板。

http://www.codesmithtools.com/product/generator

我在.NET和SQL SERVER中使用过这个工具,但它也支持PHP和MYSQL

http://community.codesmithtools.com/support_forums/f/3/p/11630/44588.aspx

Codesmith Tutorial to write template