转载请注明出处:
http://blog.csdn.net/iwanghang/article/details/60962900
觉得博文有用,请点赞,请评论,请关注,谢谢!~
转载请注明出处: http://blog.csdn.net/iwanghang/article/details/60962900
觉得博文有用,请点赞,请评论,请关注,谢谢!~
觉得博文有用,请点赞,请评论,请关注,谢谢!~
我们上一篇博文,已经完成了,栏目添加页面,现在我们要关联上数据库,在栏目添加页面想数据库插入数据。
截止到目前的项目源码:http://download.csdn.net/detail/iwanghang/9775717
1、首先创建一个数据库:
数据库名iwanghang,表名wh_cate,以下是字段
id catename keywords desc type
下面几张截图是创建过程:(如果有的同学不知道在哪里创建,请百度phpMyAdmin,我这边使用的是phpStudy,账号密码都是root)
2、检查栏目添加页面的代码,确认字段一致:
/application/admin/view/Cate/add.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="__PUBLIC__/admin">首页</a><span class="crumb-step">></span><a class="crumb-name" href="/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">
<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="" type="text">
</td>
</tr>
<tr>
<th>栏目关键词:</th>
<td><input class="common-text" name="keywords" size="50" value="" type="text"></td>
</tr>
<tr>
<th><i class="require-red">*</i>栏目类型:</th>
<td><input name="type" value="1" type="checkbox"> 留言板</td>
</tr>
<tr>
<th>栏目描述:</th>
<td><textarea name="desc" class="common-textarea" id="content" cols="30" style="width: 98%;" rows="10"></textarea>
</td>
</tr>
<tr>
<th></th>
<td>
<input class="btn btn-primary btn6 mr10" value="提交" type="submit">
<input class="btn btn6" οnclick="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>
3、在控制器中,获取提交的表单数据,并验证数据有效性,并插入数据库
验证部分等待下一篇博文完善,这里先进行引导性介绍:
验证器:
/application/admin/validate/Cate.php
<?php
/**
* 验证器
* http://www.kancloud.cn/manual/thinkphp5/129352
* 验证规则
* http://www.kancloud.cn/manual/thinkphp5/129320
* 验证规则 里面的 属性定义
*
* 内置规则 比如 唯一验证等等
* http://www.kancloud.cn/manual/thinkphp5/129356
*/
namespace app\admin\validate;
use think\Validate;
class Cate extends Validate
{
protected $rule = [
// 验证 栏目名称catename字段 不为空 最大25
'catename' => 'require|max:25',
// 表示 栏目名称catename字段 的值是否在cate表(不包含前缀)中唯一
'catename' => 'unique:cate',
];
protected $message = [
'catename.require' => '栏目名称不能为空!',
'catename.unique' => '栏目名称不能重复!',
];
}
控制器:
/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);
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();
}
}
4、千万不要修改数据库配置文件:
/application/database.php<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006~2016 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------
return [
// 数据库类型
'type' => 'mysql',
// 服务器地址
'hostname' => '127.0.0.1',
// 数据库名
'database' => 'iwanghang',
// 用户名
'username' => 'root',
// 密码
'password' => 'root',
// 端口
'hostport' => '',
// 连接dsn
'dsn' => '',
// 数据库连接参数
'params' => [],
// 数据库编码默认采用utf8
'charset' => 'utf8',
// 数据库表前缀
'prefix' => 'wh_',
// 数据库调试模式
'debug' => true,
// 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
'deploy' => 0,
// 数据库读写是否分离 主从式有效
'rw_separate' => false,
// 读写分离后 主服务器数量
'master_num' => 1,
// 指定从服务器序号
'slave_no' => '',
// 是否严格检查字段是否存在
'fields_strict' => true,
// 数据集返回类型
'resultset_type' => 'array',
// 自动写入时间戳字段
'auto_timestamp' => false,
// 时间字段取出后的默认时间格式
'datetime_format' => 'Y-m-d H:i:s',
// 是否需要进行SQL性能分析
'sql_explain' => false,
// Builder类
'builder' => '',
// Query类
'query' => '\\think\\db\\Query',
];
转载请注明出处: http://blog.csdn.net/iwanghang/article/details/60962900
欢迎移动开发爱好者交流
沈阳或周边城市公司有意开发Android,请与我联系
联系方式
微信:iwanghang
QQ:413711276
邮箱:iwanghang@qq.com
沈阳或周边城市公司有意开发Android,请与我联系
联系方式
微信:iwanghang
QQ:413711276
邮箱:iwanghang@qq.com
觉得博文有用,请点赞,请评论,请关注,谢谢!~