您好我是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>
如果有更好的方法请说。谢谢。
答案 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设置分页