我怎么能显示每个让我们说奇数条目的数据? 所以先记录Z,第二记录做Y,第三记录做Z,第四记录做Y. 或者假设我从模型中获取每个第n个记录,另一个来自n-1?
public function getNewItem()//for main page grids
{
$criteria = new CDbCriteria;
$criteria->order = 'posted_date DESC';
$criteria->compare('product_status',"Y");
$criteria->compare('product_approval_status',"Y");
//????
return new CActiveDataProvider( $this, array(
'criteria'=>$criteria,
'pagination'=>false,
));
}
答案 0 :(得分:0)
有两种方法可以做到这一点;取决于您的过滤需要多复杂;
您可以修改标准的第一种方法,只比过滤这样的奇数或偶数记录
$criteria = new CDbCriteria;
$criteria->order = 'posted_date DESC';
$criteria->compare('product_status',"Y");
$criteria->compare('product_approval_status',"Y");
$criteria->addCondition('MOD(id,2)=1','AND');
或获取相应记录子集的任何此类条件
第二种方法是在CListView
中使用的部分文件中对其进行过滤,我使用此方法通常添加不用于过滤的其他代码,例如,您希望每隔四个元素添加一个新行,For这会使用$index
调用中$widget
属性中提供的CListView
和<?php if(($index)%6 == 0 || $index == 0 ){ ?>
<div class="row">
<?php } ?>
// Regular view rendering code
// ...
<?php if(($index+1)%6 == 0 || ($index+1) == $widget->dataProvider->itemCount){ ?>
</div>
<?php }
变量,使用类似的内容。
{{1}}
这里我用它来为列表中的每6个项目插入一个新的div,或者它是第一个/最后一个项目 这对于项目的条件渲染/添加类等很有用。