在Yii关系数据的关联查询和统计功能使用详解
本文介绍了关系数据的关联查询和统计功能使用Yii。分享给您参考,如下:相关查询,Yii也支持所谓的统计查询(或汇总查询)。它是指检索相关对象的集合信息,如评论每个帖子的数量,每个产品的平均水平,等统计查询只has_many执行(例如,后有很多评论)或many_many(例如,一个岗位属于许多分类和类别有很多岗位)关联的对象。
统计查询的执行是相关的查询之前描述的非常相似。我们首先需要在关系中声明一个统计查询()方法cactiverecord。
班后延伸cactiverecord
{
公共职能关系()
{
返回的数组(
commentcount= >阵列(自::统计,'comment ','post_id),
categorycount= >阵列(自::统计,'category ','post_category(post_id,category_id)),
);
}
}
协会查询命名空间
关联查询也可以用名称空间执行。有两种形式。第一种形式是将命名空间应用于主模型。
下面的代码演示如何将命名空间应用到主模型中。
复制代码如下:$员额=后::模型()-> ->最近发表的()()->与('comments)->所有();
这与不相关的查询非常相似,唯一的区别是我们使用名称空间后面的和()调用。这个查询应该返回最近发布的文章和它们的注释。
下面的代码演示如何将命名空间应用到关联模型中。
复制代码如下:$员额=后::模型()->与('comments:最近批准的)->所有();
上面的查询将返回所有的文章及其评论评论。请注意注释是关联的名称,最近和批准引用注释模型类中声明的名称空间。
命名空间也可以在在cactiverecord宣布关联规则选项指定::()的关系。在下面的例子中,如果我们进入美元用户>的帖子,它将返回所有评论评论这篇文章。
类用户延伸cactiverecord
{
公共职能关系()
{
返回的数组(
岗位= >阵列(自::has_many,'post ','author_id ',' ' = > 'comments:批准的),
);
}
}
更多关于Yii相关内容感兴趣的读者可以查看主题:Yii框架介绍和常用的技术,总结优良的PHP开发框架
希望本文有助于基于Yii框架的PHP程序设计人。