thinkphp中的视图模型

thinkphp中也实现了视图, 它是用模型类来定义的, 视图其实就是数据库视图, 它是一张虚拟的表, 表(视图)本身不存在于数据中, 而是根据映射字段查询时自动生成, 主要是被用来解决关联查询或者说筛选的。

在thinkphp3.2.3中, 可以在模型Model和表名中间加View来表示这是一个视图模型, 然后引入Model下的ViewModel再创建一个继承自系统视图的自定义视图模型, 然后可以重写$viewFields属性, 它提供的是一个多维数组, 你可以通过array(‘表名’=>array(‘字段名’))的形式设置视图模型, 如果存在多表, 就要给重名的定义别名, 然后通过_on定义关联查询条件, 视图模型算基本定义完成。 回到对应的控制器里, 实例化自定义视图模型, 然后查出, 就可以了。

_on 其实就是 inner join , inner join的意思是只有右边结果为真才会查出左边结果, 比如

SELECT bud_category.id as cid, bud_category.title as ctitle from `bud_category` inner join `bud_section` ON bud_category.id = bud_section.title

就不会显示出任何结果, 因为 id 不等于title, 这里如果要让它不等于也查出, 只要把inner 换成 left 就可以了, 因为left 不需要右边条件相等也会给出结果。

此条目发表在thinkphp分类目录,贴了, , , , , 标签。将固定链接加入收藏夹。