本文实例讲述了Yii实现文章列表置顶功能的方法。分享给大家供大家参考,具体如下:
我的理解:首先点击获取当前ID,model层查询所有sort字段,遍历数据,得到最大值,修改数据,替换数据,即可。
效果图:
模型层:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
//显示列表
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;
}
}
|
控制器:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
//文章置顶
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;
}
}
|
视图层:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<!-- 文章列表 -->
<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程序设计有所帮助。