ThinkPHP3.0完全开发手册                                           

 

6.22.2          视图查询

接下来,我们就可以和使用普通模型一样对视图模型进行操作了 。

$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方法实现相同的功能。


站长教学网 免责声明