首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Yii按类型取数

Yii按类型取数
EN

Stack Overflow用户
提问于 2011-11-10 07:57:49
回答 2查看 495关注 0票数 0

我想知道Yii是否有一种有效的方法来按类型对项目进行分组。

假设我有以下模型:

代码语言:javascript
复制
Tag
------
id
name    
type_id

假设有5种不同类型的部分,我希望能够在我的索引中按type_idTag中显示所有标记。有什么办法可以做到这一点吗?

在框架之外,我会编写一个函数,这样从DB获取的结果就会像这样存储:

代码语言:javascript
复制
$tags[$typeID][] = $tag;

然后,在每个部分中,我可以这样做:

代码语言:javascript
复制
foreach( $tags[$typeID] as $tag )
{
    // Here are all tags for one $typeID
}

但我很难弄清楚如何在Yii中做到这一点:

A)首先循环遍历整个结果集并重写它,

B)运行5个不同的查询。

EN

回答 2

Stack Overflow用户

发布于 2011-11-10 20:09:19

使用ActiveRecord时,只需在DBCriteria中指定“索引”即可。所以在查询中这样做:

代码语言:javascript
复制
ActiveRecordClass::model()->findAll(array('index'=>'type_id'));

这将返回一个你想要的assoc数组。TBF它可能执行完全相同的代码,但这显然比在任何地方执行它更容易使用。

票数 2
EN

Stack Overflow用户

发布于 2011-11-10 08:04:26

假设您的活动记录类名为MyActiveRecordClass,那么最简单的方法就足够了:

代码语言:javascript
复制
$models = MyActiveRecordClass::model()->findAll();
$groupedModels = array();

foreach ($models as $model) {
    $groupedModels[$model->typeID][] = $model;
}

如果您提供了更具体的信息,说明您打算如何显示分组的结果,那么可能会找到更好的方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8073398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档