我遇到以下主题的实际问题:
我正在使用Yii框架创建社交网络,并且对于每个用户,我正在生成一堆以用户ID开头的数据库表,因此数据库表格如下:13_my_firends。
关键是,通过这样做,我无法使用gii工具生成某个模型,我真的需要这些表的一些模型来建立一些关系以避免内部连接,所以我猜问题是这样的:< / p>
- &GT;如何使用php或Yii代码创建模型文件,并在该代码中更改“public function relation(){}”方法以添加我的关系?
修改
我只是在考虑这个问题:是否有可能将关系添加到父级而不是儿子?我的意思是......我可以改变主DB表(我的情况是女巫是sys_accounts - 这个有一个模型),如: - &GT;在另一个方法中调用relations()方法 - &GT;制作关系数组(有点像连接)
所以基本上就像......只在我想要的时候改变了relations()方法。可能吗?如果是这样,怎么样?
答案 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