有没有办法在listview中显示这样的数据?

时间:2017-07-15 19:40:11

标签: listview yii2

您好我是Yii2的新手,我想显示最新10个帖子的标题,其中包含查看该页面的链接。我找到了一种方法,但它并不好。有更好的方法吗?

我的控制员:

public function actionIndex()
{

     $dataProviderlatenew=new ActiveDataProvider([
         'query'=>Post::find(),
         'pagination'=>[
         'pageSize'=>9,
         ],
         ]);
     return $this->render('index',[
        'dataProviderlatenew'=>$dataProviderlatenew,
        ]);

}

的index.php:

<ul id="ticker01" class="news_sticker">
<?php echo ListView::widget([
'dataProvider'=>$dataProviderlatenew,
'itemView'=>'latest_news',
'summary' => '',
'itemOptions' => [
     'tag' => false
 ],
 'pager' => [
 'options' => [
        'tag' => 'div',
         'style' => 'display: none;',
        'id' => 'pager-container',
        'class'=>'',
    ],
 ],
 ]);?>

  </ul>

latest_news.php

 <li><a href="<?=\yii\helpers\Url::to(['/post/show','title'=>$model->title])?>"><?=$model->title?></a></li>

如果有更好的方法请说。谢谢。

1 个答案:

答案 0 :(得分:1)

最好的办法是

1。)使用选择参数获取数据,并按创建日期n时间排序。

2。)选择行后,运行一个循环遍历所有选中的记录,并在同一函数中使用while循环回显每一行,并在循环中回显出li项并在html中调用UL标记之间的函数

在index.html中

<ul>
    <?php
function in php controller();
?>
</ul>

在控制器php文件中创建一个函数

<?php
function called from html ul {
$sql = select query for getting data
$result = Db connection query
while($row = mysqli_fetch_assoc($result)){
echo '<li>'.$row['column_name'].'<li>';
}
}

此功能将为您提供您想要显示的所有新闻的列表

您也可以在ul标签中直接编写函数,而不是从另一个文件中调用函数

然后使用bootstrap或jquery设置分页