我有一个包含消息及其发布日期的sql表。
我们把这些信息称为m1,m2。。。m99型。m1是最新的消息。
我想以whatsapp的方式显示它们(我使用的是yii1.1框架):最新的消息m1在底部,上面是第二个最新的m2消息,等等。
但是我想按固定数量的消息块(比如说5条)显示它们,如果请求的话,我将加载上一条消息。因此,在加载页面时,您应该看到:
(加载更多按钮)
m5级
m4级
立方米
平方米
m1级
单击“加载更多”按钮时,我将从上到下:
(加载更多按钮)/m10/m9/m8/m7/m6/m5/m4/m3/m2/m1
我尝试在yii上使用activedataprovider来实现这一点,但是为此,我需要像这样对数据进行排序:
m5、m4、m3、m2、m1、m10、m9、m8、m7、m6、m15、m14、m13、m12、m11等。
我不知道如何实现这种排序,甚至使用限制和偏移。
如果有人能帮我,我会很高兴的,谢谢!
编辑:这是我正在使用的activedataprovider
public function getMessagesDataProvider()
{
$dataProvider = new CActiveDataProvider(Message::model(), array(
'criteria' => array(
'condition' => 't.inquiry_thread_id = :threadId',
'params' => array(':threadId' => $this->id),
'order' => 't.created_at DESC',
),
'pagination' => array('pageSize' => 5, 'pageVar' => 'page'),
));
$dataProvider->getData();
}
在我看来
<?php $this->widget('\common\widgets\ListView', array(
'dataProvider' => $messagesDataProvider,
'pager' => array(
'class' => '\common\widgets\LoadMorePager',
'canBeReloadedByAjax' => true,
),
'template' => '{pager}{items}',
'itemView' => '/message/_messageItem',
'itemsCssClass' => 'pager-container',
'pagerCssClass' => 'inquiry-message-button',
)); ?>
1条答案
按热度按时间amrnrhlw1#
你可以用
setData()
以及getData()
要反转数据提供程序中项目的顺序,请执行以下操作: