搜索
系统检测到您的用户名不符合规范:

自动生成ThinkPHP的ViewModel

浏览:5066 发布日期: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模板中。这样视图模型就自动生成了。

大家来讨论讨论还有没其他思路。
我做了个生成工具的雏形,完善后会共享。
最佳答案
评论() 相关
后面还有条评论,
评论支持使用[code][/code]标签添加代码
您需要登录后才可以评论 登录 | 立即注册
收藏
adbbaby
积分:765 等级:LV2
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /