fry404006308/personalBlog: personalBlog
https://github.com/fry404006308/personalBlogjavascript
1 public function del(){ 2 $id=input('id'); 3 //初始化管理員不能刪除 4 // 根據主鍵刪除 5 if($id!=1){ 6 //刪除操做 7 $deleted=db('admin')->delete(input('id')); 8 if($deleted){ 9 return $this->success('刪除管理員成功!!','lst'); 10 }else{ 11 return $this->error('刪除管理員失敗!!'); 12 } 13 }else{ 14 return $this->error('初始化管理員不能刪除!!'); 15 } 16 }
1 {if condition="$value['id'] neq 1"} 2 <a href="#" onClick="warning('確實要刪除嗎', '{:url('admin/del',array('id'=>$value['id']))}')" class="btn btn-danger btn-sm shiny"> 3 <i class="fa fa-trash-o"></i> 刪除 4 </a> 5 {/if}
控制器中php
1 public function edit(){ 2 3 $id=input('id'); 4 $data=db('admin')->find($id); 5 6 //若是是提交過來的數據 7 if(request()->isPost()){ 8 $arr=[ 9 'id'=>input('id'), 10 'username'=>input('username'), 11 //若是接收到密碼,而且它不爲空,說明咱們要修改密碼 12 ]; 13 14 if(input('password')){ 15 $arr['password']=md5(input('password')); 16 }else{ 17 //若是爲空則表示原來的密碼不變 18 $arr['password']=$data['password']; 19 } 20 //驗證 21 $validate = Loader::validate('Admin'); 22 if(!$validate->scene('edit')->check($arr)){ 23 $this->error($validate->getError()); die; 24 } 25 // 更新數據表中的數據 26 $edited=db('admin')->update($arr); 27 if($edited){ 28 return $this->success('修改管理員信息成功!!','lst'); 29 }else{ 30 return $this->error('修改管理員信息失敗!!'); 31 } 32 return; 33 } 34 $this->assign('data',$data); 35 return $this->fetch(); 36 }
視圖中java
1 <!-- 隱藏域,主鍵,讓thinkphp知道修改的是哪一條數據 --> 2 <input type="hidden" name="id" value="{$data.id}" > 3 <!-- -->
驗證器中jquery
1 <?php 2 namespace app\admin\validate; 3 4 use think\Validate; 5 class Admin extends Validate 6 { 7 protected $rule = [ 8 'username' => 'require|max:25', 9 'password' => 'require|min:32', 10 ]; 11 12 protected $message = [ 13 'username.require' => '名稱必須', 14 'username.max' => '名稱最多不能超過25個字符', 15 'password.require' => '密碼必須', 16 'password.min' => '密碼最少32個字符', 17 ]; 18 19 20 protected $scene = [ 21 'add' => ['username'=>'require','password'], 22 'edit' => ['username'=>'require'], 23 ]; 24 }
和對管理員的操做同樣,增刪改查git
也是一個list表,一個add表,一個edit表github
包括控制器,模型,驗證,視圖四個方面,其實直接把管理員的這些操做弄過來改一改就行了thinkphp
視圖:連接列表數據庫
1 <body> 2 <!-- 頭部 --> 3 {include file="common/top"} 4 <!-- /頭部 --> 5 6 <div class="main-container container-fluid"> 7 <div class="page-container"> 8 9 <!-- Page Sidebar --> 10 {include file="common/left"} 11 <!-- /Page Sidebar --> 12 13 <!-- Page Content --> 14 <div class="page-content"> 15 <!-- Page Breadcrumb --> 16 <div class="page-breadcrumbs"> 17 <ul class="breadcrumb"> 18 <li> 19 <a href="{:url('index/index')}">系統</a> 20 </li> 21 <li class="active">連接管理</li> 22 </ul> 23 </div> 24 <!-- /Page Breadcrumb --> 25 26 <!-- Page Body --> 27 <div class="page-body"> 28 29 <button type="button" tooltip="添加連接" class="btn btn-sm btn-azure btn-addon" onClick="javascript:window.location.href = '{:url('links/add')}'"> <i class="fa fa-plus"></i> Add 30 </button> 31 <div class="row"> 32 <div class="col-lg-12 col-sm-12 col-xs-12"> 33 <div class="widget"> 34 <div class="widget-body"> 35 <div class="flip-scroll"> 36 <table class="table table-bordered table-hover"> 37 <thead class=""> 38 <tr> 39 <th class="text-center" width="10%">ID</th> 40 <th class="text-center">連接名稱</th> 41 <th class="text-center">連接地址</th> 42 <th class="text-center">連接描述</th> 43 <th class="text-center" width="20%">操做</th> 44 </tr> 45 </thead> 46 <tbody> 47 {volist name="list" id="value"} 48 <tr> 49 <td align="center">{$value.id}</td> 50 <td align="center">{$value.title}</td> 51 <td align="center"><a href="{$value.url}" target="_blank">{$value.url}</a></td> 52 <td align="center"> 53 {if condition="$value['desc'] neq ''"} 54 {$value.desc} 55 {else /} 56 暫無描述 57 {/if} 58 </td> 59 <td align="center"> 60 <a href="{:url('links/edit',array('id'=>$value['id']))}" class="btn btn-primary btn-sm shiny"> 61 <i class="fa fa-edit"></i> 編輯 62 </a> 63 · 64 65 <a href="#" onClick="warning('確實要刪除嗎', '{:url('links/del',array('id'=>$value['id']))}')" class="btn btn-danger btn-sm shiny"> 66 <i class="fa fa-trash-o"></i> 刪除 67 </a> 68 69 70 </td> 71 </tr> 72 {/volist} 73 74 </tbody> 75 </table> 76 <div class="text-right" style="margin-top: 10px"> 77 {$list->render()} 78 </div> 79 80 </div> 81 <div> 82 </div> 83 </div> 84 </div> 85 </div> 86 </div> 87 88 </div> 89 <!-- /Page Body --> 90 </div> 91 <!-- /Page Content --> 92 </div> 93 </div> 94 95 <!--Basic Scripts--> 96 <script src="__PUBLIC__/style/jquery_002.js"></script> 97 <script src="__PUBLIC__/style/bootstrap.js"></script> 98 <script src="__PUBLIC__/style/jquery.js"></script> 99 <!--Beyond Scripts--> 100 <script src="__PUBLIC__/style/beyond.js"></script> 101 102 103 104 </body>
控制器bootstrap
1 <?php 2 namespace app\admin\controller; 3 4 use think\Controller; 5 use think\Db; 6 use think\Validate; 7 use think\Loader; 8 use app\admin\model\Links as LinksModel; 9 class Links extends controller 10 { 11 public function lst() 12 { 13 // 分頁輸出列表 每頁顯示3條數據 14 $list = LinksModel::paginate(3); 15 $this->assign('list',$list); 16 return view('list'); 17 } 18 19 public function add() 20 { 21 //判斷是否爲post方法提交 22 if(request()->isPost()){ 23 // dump(input('post.')); 24 // 若是提交消息成功,咱們就添加消息到數據庫 25 26 // // 服務器端對數據進行驗證 27 // $validate = new Validate([ 28 // 'username' => 'require|max:25', 29 // 'password' => 'require|min:32' 30 // ]); 31 // 一、接收傳遞過來的數據 32 33 $data=[ 34 'title'=>input('title'), 35 'url'=>input('url'), 36 'desc'=>input('desc'), 37 ]; 38 39 $validate = Loader::validate('Links'); 40 if(!$validate->scene('add')->check($data)){ 41 $this->error($validate->getError()); die; 42 } 43 44 // if (!$validate->check($data)) { 45 // dump($validate->getError()); 46 // die; 47 // } 48 49 // if添加成功,就指向success頁面 50 if(Db::name('links')->insert($data)){ 51 return $this->success('添加連接成功!!','lst'); 52 }else{ 53 return $this->error('添加連接失敗!!'); 54 } 55 return; 56 } 57 return view(); 58 } 59 60 public function edit(){ 61 62 $id=input('id'); 63 $data=db('links')->find($id); 64 65 //若是是提交過來的數據 66 if(request()->isPost()){ 67 $arr=[ 68 'id'=>input('id'), 69 'title'=>input('title'), 70 'url'=>input('url'), 71 'desc'=>input('desc'), 72 ]; 73 74 //驗證 75 $validate = Loader::validate('Links'); 76 if(!$validate->scene('edit')->check($arr)){ 77 $this->error($validate->getError()); die; 78 } 79 // 更新數據表中的數據 80 $edited=db('links')->update($arr); 81 if($edited){ 82 return $this->success('修改連接信息成功!!','lst'); 83 }else{ 84 return $this->error('修改連接信息失敗!!'); 85 } 86 return; 87 } 88 $this->assign('data',$data); 89 return $this->fetch(); 90 } 91 92 public function del(){ 93 $id=input('id'); 94 95 // 根據主鍵刪除 96 97 //刪除操做 98 $deleted=db('links')->delete(input('id')); 99 if($deleted){ 100 return $this->success('刪除連接成功!!','lst'); 101 }else{ 102 return $this->error('刪除連接失敗!!'); 103 } 104 105 106 107 } 108 109 }
驗證服務器
1 <?php 2 namespace app\admin\validate; 3 4 use think\Validate; 5 class Links extends Validate 6 { 7 protected $rule = [ 8 'title' => 'require|max:50', 9 'url' => 'require', 10 ]; 11 12 protected $message = [ 13 'title.require' => '連接名稱必須填寫', 14 'title.max' => '連接名稱最多不能超過50個字符', 15 'url.require' => '連接地址必須填寫', 16 17 ]; 18 19 20 protected $scene = [ 21 'add' => ['title'=>'require','url'], 22 'edit' => ['title'=>'require','url'], 23 ]; 24 25 26 27 28 29 }
模型
1 <?php 2 namespace app\admin\model; 3 4 use think\Model; 5 class Links extends Model 6 { 7 8 }
驗證器裏面有一個驗證表中字段是否重複的功能
1 <?php 2 namespace app\admin\validate; 3 4 use think\Validate; 5 class Cate extends Validate 6 { 7 protected $rule = [ 8 'catename' => 'require|max:25|unique:cate', 9 ]; 10 11 protected $message = [ 12 'catename.require' => '欄目名稱必須填寫', 13 'catename.max' => '欄目名稱最多不能超過25個字符', 14 'catename.unique' => '欄目名稱已經存在', 15 ]; 16 17 18 protected $scene = [ 19 'add' => ['catename'=>'require|unique:cate'], 20 'edit' => ['catename'=>'require|unique:cate'], 21 ]; 22 23 }
驗證當前請求的字段值是否爲惟一的,例如:// 表示驗證name字段的值是否在user表(不包含前綴)中惟一'name' => 'unique:user',