在前文中了解了ThinkPHP3.2.3视图模型的定义后,就可以和使用普通模型一样对视图模型进行操作了 。
$Model = D("BlogView"); $Model->field('id,name,title,category_name,username')->where('id>10')->order('id desc')->select();
看起来和普通的模型操作并没有什么大的区别,可以和使用普通模型一样进行查询。如果发现查询的结果存在重复数据,还可以使用group方法来处理。
$Model->field('id,name,title,category_name,username')->order('id desc')->group('id')->select();
我们可以看到,即使不定义视图模型,其实我们也可以通过方法来操作,但是显然非常繁琐。
$Model = D("Blog"); $Model->table('think_blog Blog,think_category Category,think_user User') ->field('Blog.id,Blog.name,Blog.title,Category.title as category_name,User.name as username') ->order('Blog.id desc') ->where('Blog.category_id=Category.id AND Blog.user_id=User.id') ->select();
而定义了视图模型之后,所有的字段会进行自动处理,添加表别名和字段别名,从而简化了原来视图的复杂查询。如果不使用视图模型,也可以用连贯操作的JOIN方法实现相同的功能。