学习thinkPHP 视图模型的时候遇到的坑还是不少的,主要有两个问题,在这里总结一下
有两个模型,一个UserModel ,一个ProductModel ,这两个分别对应数据表里的user表和product表,每个表都有id字段,ProductModel里还有user_id 字段,现在要建立一个viewmodel(UserProductModel),包含user表里的user_name和Product表里的title
首先是这样一个小问题,如果UserModel 里有$trueTableName属性,即UserModel 对应的不是user表,而是你$trueTableName变量指定的数据表,比如AdminUser ,此时你在ViewModel 模型的$viewFields 变量里定义 {'User'=>array('id'=>'uu_id','user'}的时候,系统并不加载你在UserModel里定义的变量 $trueTableName ,而是按照默认的规则直接找user表,而此时你数据库里是AdminUser表,所以难免会出错,此时可以这样 {'AdminUser'=>array('id'=>'uu_id','user','_table'=>"AdminUser"),},加一个"_table" 变量
第二个问题是查询的时候不能用id作为条件,因为两个表里都有id字段,所以查询的时候会出错