觉得博文有用,请点赞,请评论,请关注,谢谢!~
数据库必须掌握的“增、删、改、查”,我个人觉得“改”是最难的,让我们来大概的看一下,如何实现。
截止到目前的项目源码: http://download.csdn.net/detail/iwanghang/9782231
\iwanghang\application\admin\controller\Cate.php
<?php/**
* 列表控制器
* http://www.iwanghang.com/admin/cate/lst
*/
namespace app\admin\controller;
use think\Controller;
class Cate extends Controller
{
// 列表页面
public function lst()
{
// 查询cate表信息并打印 一条数据
// $data = \think\Db::name('cate')->find();
// print_r($data);
// 查询cate表信息并打印 所有数据
$cateres = \think\Db::name('cate')->select();
//dump($cateres);
// echo "<pre>";
// var_dump($data);
// echo "</pre>";
// 分配模板
$this->assign('cateres',$cateres);
// 循环输出标签 http://www.kancloud.cn/manual/thinkphp5/125017
// 将标签输出到 /application/admin/view/Cate/lst.html {volist name="cateres" id="vo"} {/volist}
// 条件判断 http://www.kancloud.cn/manual/thinkphp5/125019
// 用于判断栏目类型 /application/admin/view/Cate/lst.html
// {if condition="$vo['type'] eq 0"} 列表栏目
// {elseif condition="$vo['type'] == 1"/}留言板
// {else /} 其他类型
// {/if}
return $this->fetch();
}
// 添加页面
// 对应文件 /application/admin/view/Cate/add.html
// 助手函数 http://www.kancloud.cn/manual/thinkphp5/144731
// 助手函数中的:input 获取输入数据 支持默认值和过滤
// 把数据接过来以后,要判断(也就是验证数据有的有效性,不能为空等等),然后添加到数据库
// 验证器 http://www.kancloud.cn/manual/thinkphp5/129352
// 添加一条数据 http://www.kancloud.cn/manual/thinkphp5/135177
public function add()
{
if (request()->isPost()) {
$data = [
'catename' => input('catename'),
'keywords' => input('keywords'),
'desc' => input('desc'),
//'type' => input('type'), 这样写没有默认值,我用下面的三元运算符的写法
'type' => input('type') ? input('type') : 0, // 三元运算符 如果input('type')不为空,则取input('type'),否则取0
];
// 验证器 http://www.kancloud.cn/manual/thinkphp5/129352
// 在需要进行User验证的地方,添加如下代码即可:
$validate = \think\Loader::validate('Cate');
if (!$validate->check($data)) {
return $this->error($validate->getError());
die();
}
// 添加一条数据
$db = \think\Db::name('cate')->insert($data);
// 判断是否成功
if ($db) {
return $this->success('添加栏目成功!','lst');
}else{
return $this->error('添加栏目失败!');
}
return;
}
return $this->fetch();
}
// 删除函数
// 删除数据 http://www.kancloud.cn/manual/thinkphp5/135179
public function del()
{
$id = input('id');
if (db('cate')->delete($id)) {
return $this->success('删除栏目成功!','lst');
}else{
return $this->error('删除栏目失败!');
}
}
// 修改数据
// 查询数据 http://www.kancloud.cn/manual/thinkphp5/135176
// 更新数据 http://www.kancloud.cn/manual/thinkphp5/135178
public function edit()
{
if(request()->isPost()){
$data = [
'id'=>input('id'),
'catename'=>input('catename'),
'keywords'=>input('keywords'),
'desc'=>input('desc'),
'type'=>input('type')
];
if ($db=\think\Db::name('cate')->update($data))
{
return $this->success('修改栏目成功!','lst');
}else{
return $this->error('修改栏目失败!');
}
return; // 这里加一个return 如果提交表单就不在继续下面的代码
}
$id = input('id'); // 获取id
$cates = db('cate')->where('id',$id)->find(); // 根据id查询数据
$this->assign('cates',$cates); // 分配模板
return $this->fetch();
}
}
\iwanghang\application\admin\view\Cate\edit.html
<!doctype html><html><head> <meta charset="UTF-8"> <title>后台管理</title> <link rel="stylesheet" type="text/css" href="__PUBLIC__/static/admin/css/common.css"/> <link rel="stylesheet" type="text/css" href="__PUBLIC__/static/admin/css/main.css"/> <script type="text/javascript" src="__PUBLIC__/static/admin/js/libs/modernizr.min.js"></script> <script type="text/javascript" src="__PUBLIC__/static/admin/js/libs/ueditor.config.js"></script> <script type="text/javascript" src="__PUBLIC__/static/admin/js/libs/ueditor.all.min.js"></script> <script type="text/javascript" src="__PUBLIC__/static/admin/js/libs/lang/zh-cn/zh-cn.js"></script></head><body>{include file="Public/top" /}<div class="container clearfix">{include file="Public/left" /} <!--/sidebar--> <div class="main-wrap"> <div class="crumb-wrap"> <div class="crumb-list"><i class="icon-font"></i> <a href="/iwanghang/index.php/admin">首页</a> <span class="crumb-step">></span> <a class="crumb-name" href="/iwanghang/index.php/admin/cate/lst">栏目管理</a> <span class="crumb-step">></span> <span>修改栏目</span></div> </div> <div class="result-wrap"> <div class="result-content"> <form action="" method="post" id="myform" name="myform" enctype="multipart/form-data"> <!--下面一行 是 隐藏域,用于收集表单数据--> <input type="hidden" name="id" value="{cates.id}"> <table class="insert-tab" width="100%"> <tbody> <!-- <tr> --> <!-- <th width="120"><i class="require-red">*</i>栏目类型:</th> --> <!-- <td> --> <!-- <select name="type" id="catid" class="required"> --> <!-- <option value="">请选择</option> --> <!-- <option value="19">列表</option><option value="20">留言</option> --> <!-- </select> --> <!-- </td> --> <!-- </tr> --> <tr > <th style="width: 10%;"><i class="require-red">*</i>栏目名称:</th> <td> <input class="common-text required" id="title" name="catename" size="50" value="{$cates.catename}" type="text"> </td> </tr> <tr> <th>栏目关键词:</th> <td><input class="common-text" name="keywords" size="50" value="{$cates.keywords}" type="text"></td> </tr> <tr> <th><i class="require-red">*</i>栏目类型:</th> <td><input name="type" value="1" type="checkbox" {if condition="$cates.type eq 1"}checked='checked'{if} > 留言板</td> </tr> <tr> <th>栏目描述:</th> <td><textarea name="desc" class="common-textarea" id="content" cols="30" style="width: 98%;" rows="10">{$cates.desc}</textarea> </td> </tr> <tr> <th></th> <td> <input class="btn btn-primary btn6 mr10" value="提交" type="submit"> <input class="btn btn6" onclick="history.go(-1)" value="返回" type="button"> </td> </tr> </tbody></table> </form> </div> </div> </div> <!--/main--></div> <script type="text/javascript"> //实例化编辑器 //建议使用工厂方法getEditor创建和引用编辑器实例,如果在某个闭包下引用该编辑器,直接调用UE.getEditor('editor')就能拿到相关的实例 UE.getEditor('content',{initialFrameWidth:1000,initialFrameHeight:400,}); </script></body></html>
需要注意的是:
因为修改数据,需要id字段信息,所以在edit.html里,我们使用了:
<!--下面一行 是 隐藏域,用于收集表单数据--> <input type="hidden" name="id" value="{cates.id}">
但是这里我们并没有验证数据的有效性,请关注后续博客。
转载请注明出处: http://blog.csdn.net/iwanghang/article/details/62228970
欢迎移动开发爱好者交流
沈阳或周边城市公司有意开发Android,请与我联系
联系方式
微信:iwanghang
QQ:413711276
邮箱:iwanghang@qq.com
觉得博文有用,请点赞,请评论,请关注,谢谢!~