Thinkphp5為某資料表提供額外的排序功能
在顯示資料列表時,一般我們只是簡單的將資料進行展示,並不需要其它額外的操作。如果我們需要對資料再進行排序,可參考如下程式碼:
通過修改排序欄位,就可修改資料的顯示位置。
一、前臺lst.html程式碼
<form action="" method="post"><!--在原先列表基礎上,額外新增程式碼-->
<table class="table table-bordered table-hover">
<thead class="">
<tr>
<th class="text-center" width=10%>ID</th>
<th class="text-center" width=10%>排序</th><!--新新增的欄位sort-->
<th>欄目名稱</th>
<th class="text-center">欄目型別</th>
<th class="text-center" width=20%>操作</th>
</tr>
</thead>
<tbody>
{volist name="list" id="vo"}
<tr>
<td align="center">{$vo.id}</td>
<td align="center"><input type="text" name="{$vo.id}"
value="{$vo.sort}" <!--排序欄位的賦值很特殊name為當前每一條資料的id,值為資料庫中排序欄位的值-->
style="width:50px;text-align:center;" /></td>
<td>{neq name="vo.level" value="0"}|{/neq}
<?php echo str_repeat('-',$vo['level']*4) ?> {$vo.catename}
</td>
<td align="center">{eq name="vo.type" value="1"}列表{else/}單頁{/eq}
</td>
<td align="center">
<a href="{:url('cate/edit',array('id'=>$vo['id']))}"
class="btn btn-primary btn-sm shiny">
<i class="fa fa-edit"></i> 編輯
</a>
<a href="#"
onClick="warning('確實要刪除嗎', '{:url('cate/delete',array('id'=>$vo['id']))}')"
class="btn btn-danger btn-sm shiny">
<i class="fa fa-trash-o"></i> 刪除
</a>
</td>
</tr>
{/volist}
</tbody>
</table>
<div><input class="btn btn-primary btn-sm shiny" type="submit" value="排序"
style="margin-left:160px;margin-top:10px;" /></div>
</form><!--在原先列表基礎上,額外新增程式碼-->
二、後臺實現程式碼:Cate.php Controller中的程式碼:
/***
* 列表
*/
public function lst(){
$cate=new CateModel();
if(request()->isPost()){
$data=input('post.');
foreach($data as $k=>$v){
$cate->update(['id'=>$k,'sort'=>$v]);
}
$this->success("欄目排序更新成功!");
}
$list=$cate->catetree();//這個方法和以往有所區別,多加了一個sort排序功能
$this->assign('list',$list);
return $this->fetch();
}
三、Cate.php Model層的變化:
/**
* 取得所有無限級欄目資訊並排序
*/
public function catetree(){
$cateres=db('cate')->order('sort desc')->select();
return $this->sort($cateres);
}
public function sort($data,$pid=0,$level=0){
static $arr=array();
foreach($data as $k=>$v){
if($v['pid']==$pid){//找到第一個頂級欄目
$v['level']=$level;
$arr[]=$v;
$this->sort($data,$v['id'],$level+1);
}
}
return $arr;
}
「其他文章」
- Thinkphp5使用X-admin出現woff字型檔案跨域問題的解決方法
- Thinkphp5使用kindeditor富文字編輯器實現圖片上傳處理功能(二)
- Thinkphp5載入kindeditor富文字編輯器實現基本文書處理功能
- php上傳檔案大小修改方法
- Thinkphp5擷取文章標題超過指定長度的方法
- Thinkphp5通用網站後臺配置項的動態新增及更新
- JQuery框架獲取 /設定控制元件值
- js獲取/設定網頁內容的兩種方式value/innerHTML
- js為按鈕新增單擊事件的兩種方法
- Thinkphp5修改文章後刪除原先上傳圖片
- Thinkphp5前臺對超過一定長度字串擷取進行顯示
- Thinkphp5使用模型層的事件完成在新增資料前上傳圖片的功能
- Thinkphp5為某資料表提供額外的排序功能
- Thinkphp5無限級分類修改欄目的實現程式碼
- Thinkphp5控制器的前置操作(刪除上級欄目也刪除掉對應的所有子欄目)
- Thinkphp5無限級分類列表欄目的實現程式碼
- Thinkphp5無限級分類新增欄目的實現程式碼
- Thinkphp5匹配關鍵字相似的文章實現程式碼
- Thinkphp5後臺獲取欄目、熱門文章、熱門標籤、隨機文章實現程式碼
- Thinkphp5分頁查詢及上一條下一條功能的實現