您的当前位置:首页正文

Yii实现文章列表置顶功能示例

2020-11-27 来源:东饰资讯网
本文实例讲述了Yii实现文章列表置顶功能的方法。分享给大家供大家参考,具体如下:

我的理解:首先点击获取当前ID,model层查询所有sort字段,遍历数据,得到最大值,修改数据,替换数据,即可。

效果图:

080742450.jpg

模型层:

//显示列表
public function lists1()
{
 $arr=Yii::$app->db->createCommand("select * from acticle join type on type.t_id=acticle.t_id order by sort desc")->queryall();
 return $arr;
}
//置顶
public function top(){
 $arr=$this::find()->select("sort")->asArray()->all();
 //print_r($arr);die;
 $rows=array();
 foreach($arr as $key=>$v)
 {
 $rows[]=$v['sort'];
 }
 $max=array_search(max($rows),$rows);
 return intval($rows[$max]+1);
 }
 //修改数据
 public function update1($sort,$acticle_id){
 $arr=Yii::$app->db->createCommand()->update("acticle",['sort'=>$sort],['acticle_id'=>$acticle_id]);
 if($arr->execute()){
 return 1;
 }else{
 return 2;
 }
}

控制器:

//文章置顶
public function actionTopq(){
 $acticle_id=$_GET['id'];
 //echo $acticle_id;die;
 //获取最大sort
 $model=new Acticle();
 $sort=$model->top();
 //修改数据
 $row=$model->update1($sort,$acticle_id);
 //echo $row;die;
 if($row==1){
 //替换数据,置顶
 $res1=$model->lists1();
 $art=new Articles();
 $res6=$art->get_right($res1,5);
 return $res6;
 }else{
 return false;
 }
}

视图层:

<!-- 文章列表 -->
<div class="r_230_b ma_b8" style="float:right;right:0;line">
<div class="news_t" ><h2><font color="#d52c99">最新动态</font></h2></div>
<?php echo $res6;?>
</div>
<script>
function topq(ts){
 $.get("index.php?r=index/topq",{id:ts},function(msg){
 $('#sort').html(msg);
 //alert(msg);
 })
}
</script>

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。感谢对PHP中文网的支持。

显示全文