自动生成ThinkPHP的ViewModel

浏览:5008 发布日期:2013/09/16 分类:技术分享
  在TP中,写视图模型的关联关系一直是费时费力的,需要将所有要查询的字段名都写上。
  其实视图关系是可以由数据库分析生成的。
  例如,我们在输出一个产品列表的时候,同时需要输出用户名。而产品表中只存有user_id外键,并没有user_name的冗余设计,所以需要关联查询。如果要手动填写viewFields的话

public $viewFields = array(
'Product'=>array('product_id','product_name'),
'User'=>array('user_name', '_on'=>'Product.user_id=User.user_id')
);
  
  由字段设计可以得出,外键关联的是其他表的主键。我们分析Product表中有一个不带“product_”前缀的字段,该字段是外接,该外键是其他表中的主键。我们这时候再去查找主键为user_id的表。获取该表所有带user_前缀的字段。然后将Product表和User表的字段输出到准备好的ViewModel模板中。这样视图模型就自动生成了。

大家来讨论讨论还有没其他思路。
我做了个生成工具的雏形,完善后会共享。
最佳答案
评论( 相关
后面还有条评论,点击查看>>