其实视图关系是可以由数据库分析生成的。
例如,我们在输出一个产品列表的时候,同时需要输出用户名。而产品表中只存有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模板中。这样视图模型就自动生成了。
大家来讨论讨论还有没其他思路。
我做了个生成工具的雏形,完善后会共享。
最佳答案