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

项目地址

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

一、删除管理员

     public function del(){
$id=input('id');
//初始化管理员不能删除
// 根据主键删除
if($id!=1){
//删除操作
$deleted=db('admin')->delete(input('id'));
if($deleted){
return $this->success('删除管理员成功!!','lst');
}else{
return $this->error('删除管理员失败!!');
}
}else{
return $this->error('初始化管理员不能删除!!');
}
}
                                     {if condition="$value['id'] neq 1"}
<a href="#" onClick="warning('确实要删除吗', '{:url('admin/del',array('id'=>$value['id']))}')" class="btn btn-danger btn-sm shiny">
<i class="fa fa-trash-o"></i> 删除
</a>
{/if}

二、修改管理员

控制器中

     public function edit(){

         $id=input('id');
$data=db('admin')->find($id); //如果是提交过来的数据
if(request()->isPost()){
$arr=[
'id'=>input('id'),
'username'=>input('username'),
//如果接收到密码,并且它不为空,说明我们要修改密码
]; if(input('password')){
$arr['password']=md5(input('password'));
}else{
//如果为空则表示原来的密码不变
$arr['password']=$data['password'];
}
//验证
$validate = Loader::validate('Admin');
if(!$validate->scene('edit')->check($arr)){
$this->error($validate->getError()); die;
}
// 更新数据表中的数据
$edited=db('admin')->update($arr);
if($edited){
return $this->success('修改管理员信息成功!!','lst');
}else{
return $this->error('修改管理员信息失败!!');
}
return;
}
$this->assign('data',$data);
return $this->fetch();
}

视图中

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

验证器中

 <?php
namespace app\admin\validate; use think\Validate;
class Admin extends Validate
{
protected $rule = [
'username' => 'require|max:25',
'password' => 'require|min:32',
]; protected $message = [
'username.require' => '名称必须',
'username.max' => '名称最多不能超过25个字符',
'password.require' => '密码必须',
'password.min' => '密码最少32个字符',
]; protected $scene = [
'add' => ['username'=>'require','password'],
'edit' => ['username'=>'require'],
];
}

三、友情链接功能

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

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

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

视图:链接列表

 <body>
<!-- 头部 -->
{include file="common/top"}
<!-- /头部 --> <div class="main-container container-fluid">
<div class="page-container"> <!-- Page Sidebar -->
{include file="common/left"}
<!-- /Page Sidebar --> <!-- Page Content -->
<div class="page-content">
<!-- Page Breadcrumb -->
<div class="page-breadcrumbs">
<ul class="breadcrumb">
<li>
<a href="{:url('index/index')}">系统</a>
</li>
<li class="active">链接管理</li>
</ul>
</div>
<!-- /Page Breadcrumb --> <!-- Page Body -->
<div class="page-body"> <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
</button>
<div class="row">
<div class="col-lg-12 col-sm-12 col-xs-12">
<div class="widget">
<div class="widget-body">
<div class="flip-scroll">
<table class="table table-bordered table-hover">
<thead class="">
<tr>
<th class="text-center" width="10%">ID</th>
<th class="text-center">链接名称</th>
<th class="text-center">链接地址</th>
<th class="text-center">链接描述</th>
<th class="text-center" width="20%">操作</th>
</tr>
</thead>
<tbody>
{volist name="list" id="value"}
<tr>
<td align="center">{$value.id}</td>
<td align="center">{$value.title}</td>
<td align="center"><a href="{$value.url}" target="_blank">{$value.url}</a></td>
<td align="center">
{if condition="$value['desc'] neq ''"}
{$value.desc}
{else /}
暂无描述
{/if}
</td>
<td align="center">
<a href="{:url('links/edit',array('id'=>$value['id']))}" class="btn btn-primary btn-sm shiny">
<i class="fa fa-edit"></i> 编辑
</a>
· <a href="#" onClick="warning('确实要删除吗', '{:url('links/del',array('id'=>$value['id']))}')" class="btn btn-danger btn-sm shiny">
<i class="fa fa-trash-o"></i> 删除
</a> </td>
</tr>
{/volist} </tbody>
</table>
<div class="text-right" style="margin-top: 10px">
{$list->render()}
</div> </div>
<div>
</div>
</div>
</div>
</div>
</div> </div>
<!-- /Page Body -->
</div>
<!-- /Page Content -->
</div>
</div> <!--Basic Scripts-->
<script src="__PUBLIC__/style/jquery_002.js"></script>
<script src="__PUBLIC__/style/bootstrap.js"></script>
<script src="__PUBLIC__/style/jquery.js"></script>
<!--Beyond Scripts-->
<script src="__PUBLIC__/style/beyond.js"></script> </body>

控制器

 <?php
namespace app\admin\controller; use think\Controller;
use think\Db;
use think\Validate;
use think\Loader;
use app\admin\model\Links as LinksModel;
class Links extends controller
{
public function lst()
{
// 分页输出列表 每页显示3条数据
$list = LinksModel::paginate(3);
$this->assign('list',$list);
return view('list');
} public function add()
{
//判断是否为post方法提交
if(request()->isPost()){
// dump(input('post.'));
// 如果提交消息成功,我们就添加消息到数据库 // // 服务器端对数据进行验证
// $validate = new Validate([
// 'username' => 'require|max:25',
// 'password' => 'require|min:32'
// ]);
// 1、接收传递过来的数据 $data=[
'title'=>input('title'),
'url'=>input('url'),
'desc'=>input('desc'),
]; $validate = Loader::validate('Links');
if(!$validate->scene('add')->check($data)){
$this->error($validate->getError()); die;
} // if (!$validate->check($data)) {
// dump($validate->getError());
// die;
// } // if添加成功,就指向success页面
if(Db::name('links')->insert($data)){
return $this->success('添加链接成功!!','lst');
}else{
return $this->error('添加链接失败!!');
}
return;
}
return view();
} public function edit(){ $id=input('id');
$data=db('links')->find($id); //如果是提交过来的数据
if(request()->isPost()){
$arr=[
'id'=>input('id'),
'title'=>input('title'),
'url'=>input('url'),
'desc'=>input('desc'),
]; //验证
$validate = Loader::validate('Links');
if(!$validate->scene('edit')->check($arr)){
$this->error($validate->getError()); die;
}
// 更新数据表中的数据
$edited=db('links')->update($arr);
if($edited){
return $this->success('修改链接信息成功!!','lst');
}else{
return $this->error('修改链接信息失败!!');
}
return;
}
$this->assign('data',$data);
return $this->fetch();
} public function del(){
$id=input('id'); // 根据主键删除 //删除操作
$deleted=db('links')->delete(input('id'));
if($deleted){
return $this->success('删除链接成功!!','lst');
}else{
return $this->error('删除链接失败!!');
} } }

验证

 <?php
namespace app\admin\validate; use think\Validate;
class Links extends Validate
{
protected $rule = [
'title' => 'require|max:50',
'url' => 'require',
]; protected $message = [
'title.require' => '链接名称必须填写',
'title.max' => '链接名称最多不能超过50个字符',
'url.require' => '链接地址必须填写', ]; protected $scene = [
'add' => ['title'=>'require','url'],
'edit' => ['title'=>'require','url'],
]; }

模型

 <?php
namespace app\admin\model; use think\Model;
class Links extends Model
{ }

四、栏目功能

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

 <?php
namespace app\admin\validate; use think\Validate;
class Cate extends Validate
{
protected $rule = [
'catename' => 'require|max:25|unique:cate',
]; protected $message = [
'catename.require' => '栏目名称必须填写',
'catename.max' => '栏目名称最多不能超过25个字符',
'catename.unique' => '栏目名称已经存在',
]; protected $scene = [
'add' => ['catename'=>'require|unique:cate'],
'edit' => ['catename'=>'require|unique:cate'],
]; }

验证当前请求的字段值是否为唯一的,例如:
// 表示验证name字段的值是否在user表(不包含前缀)中唯一
'name' => 'unique:user',

thinkphp5项目--个人博客(二)的更多相关文章

  1. thinkphp5项目--个人博客(八)

    thinkphp5项目--个人博客(八) 项目地址 fry404006308/personalBlog: personalBloghttps://github.com/fry404006308/per ...

  2. thinkphp5项目--个人博客(七)

    thinkphp5项目--个人博客(七) 项目地址 fry404006308/personalBlog: personalBloghttps://github.com/fry404006308/per ...

  3. thinkphp5项目--个人博客(六)

    thinkphp5项目--个人博客(六) 项目地址 fry404006308/personalBlog: personalBloghttps://github.com/fry404006308/per ...

  4. thinkphp5项目--个人博客(五)

    thinkphp5项目--个人博客(五) 项目地址 fry404006308/personalBlog: personalBloghttps://github.com/fry404006308/per ...

  5. thinkphp5项目--个人博客(四)

    thinkphp5项目--个人博客(四) 项目地址 fry404006308/personalBlog: personalBloghttps://github.com/fry404006308/per ...

  6. thinkphp5项目--个人博客(三)

    thinkphp5项目--个人博客(三) 项目地址 fry404006308/personalBlog: personalBloghttps://github.com/fry404006308/per ...

  7. thinkphp5项目--个人博客(一)

    thinkphp5项目--个人博客(一) 项目地址 fry404006308/personalBlog: personalBloghttps://github.com/fry404006308/per ...

  8. 2015-2016-2 《Java程序设计》项目小组博客

    2015-2016-2 <Java程序设计>项目小组博客 1451 完+美 java项目 守望先疯 JavaGroup 07_10_20_22 FromBottomToTop L.G.Su ...

  9. 团队项目系列博客 —— 在路上(之wampserver 修改根目录以及配置多站点以及修改端口号)

    团队项目系列博客 -- 在路上(之wampserver 修改根目录以及配置多站点以及修改端口号) 标签(空格分隔): wampserver php 参考:参考文献1.慕课网.知乎.github 一.w ...

随机推荐

  1. HDU 5416 CRB and Tree (2015多校第10场)

    欢迎參加--每周六晚的BestCoder(有米!) CRB and Tree Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 65536 ...

  2. Restful技术

    一.概述 Restful技术是一种架构风格(Representational State Transfer)表现层状态转化,而不是一种编程标准. 之前前后端混在一起,前端通过mapping映射找到后端 ...

  3. leveldb学习:sstable(2)

    block写入:block_builder block.h和.cc里定义了block的entry存储格式和restart,提供了entry的查找接口以及迭代器.那么怎样往写block里写entry呢? ...

  4. oracle 11g RAC 的一些基本概念

    一.脑裂以及对策 脑裂(split-brain)是集群中的一个糟糕的情况:集群中的所有集群正在工作的时候,内部通讯被断开.这种情况下,集群被分成了几个部分,每个部分的集群软件都会尝试去接管其他节点的资 ...

  5. oracle 11g sql优化之行迁移处理(加大BLOCK块)

    行链接 产生原因:当一行数据大于一个数据块,ORACLE会同时分配两个数据块,并在第一个块上登记第二个块的地址,从而形成行链接. 预防方法:针对表空间扩大数据块大小.检查:analyze table ...

  6. POJ 3178 凸包+DP (巨坑)

    题意: 思路: 这题巨坑!!! 这题巨坑!!! 这题巨坑!!! 这题巨坑!!! 这题巨坑!!! (而且没有题解--.5555555--) 只能照着自己想的写了-- 先求出来凸包 求凸包的方法呢:先找出 ...

  7. yum概述配置

    YUM(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器.基于RPM包管理,能够从指定的服务器自动下载 ...

  8. SQL SERVER 将一个数据库中的表和数据复制到另一个数据库中

    第一种情况:将A数据库.dbo.A表的数据追加到B数据库.dbo.B表中 (条件:此时B数据库中已创建好了B表) insert into B数据库.dbo.B表 select * from A数据库. ...

  9. Servlet基础(一)

    JavaEE:企业级开发技术 <一.基础概念>j2ee:jdk1.1--1.4   ----->>    j2ee1.1   1.2   javaee:jdk--5,6,7   ...

  10. POJ 1990 MooFest【 树状数组 】

    题意:给出n头牛,每头牛有一个听力v,坐标x,两头牛之间的能量为max(v1,v2)*dist(v1,v2),求总的能量值 先将每头牛按照v排序,排完顺序之后,会发现有坐标比当前的x小的,会有坐标比当 ...