• thinkphp5项目--个人博客(二)


    thinkphp5项目--个人博客(二)

    项目地址

    fry404006308/personalBlog: personalBlog
    https://github.com/fry404006308/personalBlog

    一、删除管理员

     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}

    二、修改管理员

    控制器中

     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     }

    视图中

    1                         <!-- 隐藏域,主键,让thinkphp知道修改的是哪一条数据 -->
    2                         <input type="hidden" name="id" value="{$data.id}" >
    3                         <!--  -->

    验证器中

     1 <?php
     2 namespace appadminvalidate;
     3 
     4 use thinkValidate;
     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 }

    三、友情链接功能

    和对管理员的操作一样,增删改查

    也是一个list表,一个add表,一个edit表

    包括控制器,模型,验证,视图四个方面,其实直接把管理员的这些操作弄过来改一改就好了

    视图:链接列表

      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>

    控制器

      1 <?php
      2 namespace appadmincontroller;
      3 
      4 use thinkController;
      5 use thinkDb;
      6 use thinkValidate;
      7 use thinkLoader;
      8 use appadminmodelLinks 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             // 1、接收传递过来的数据
     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 }
    View Code

    验证

     1 <?php
     2 namespace appadminvalidate;
     3 
     4 use thinkValidate;
     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 }
    View Code

    模型

    1 <?php
    2 namespace appadminmodel;
    3 
    4 use thinkModel;
    5 class Links extends Model
    6 {
    7     
    8 }
    View Code

    四、栏目功能

    验证器里面有一个验证表中字段是否重复的功能

     1 <?php
     2 namespace appadminvalidate;
     3 
     4 use thinkValidate;
     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',

  • 相关阅读:
    渐入效果
    单一元素颜色渐变
    JS中同名函数有效执行顺序
    jquery多重条件选择器
    Oracle表空间常用查询
    jquery如何获取span的文本?
    相关名词浅析
    html拼接字符串中特殊字符(‘ “ 等的转义问题)
    今日头条2017校园招聘、暑假实习内推邀请码
    [转]宏定义和函数调用的区别
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/8762363.html
Copyright © 2020-2023  润新知