本文实例讲述了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程序设计有所帮助。