关联模型主要在多表操作时使用,比如
user表,user_role表,role表
user_role字段:uid,rid,它作为中间表,负责将user和role之间的,1对1,1对多,多对多的关系进行保存。
这时要通过uid查询用户的数据和用户拥有的所有role数据时,就要用到关联模型。
role的结果会成为一个新数组,插在user的结果数组里,成为多维数组。
而视图模型则就是mysql的join方法的简化操作而已。
将多表通过join方法联合查询,然后成为一个一维数组输出。不存在中间表一说!一般作为select时用的很多。
另外,关联模型,1对1,1对多时,进行删除和编辑都没问题,对应的表都会正常执行。
但多对多时,不管是删除还是编辑,都会把中间表清空,原因是在操作中间表时,没有带上where信息。。这是tp3.1.3的bug。不知道未来版本修复了没
所以在多对多编辑和删除时就用常规手段做,不要用关联模型方式了