- 首先是application\\controller\\Index.php 控制器
这里涉及到几个重要的知识点
1. 怎么接收前台页面传过来的数据,
1. 传数据的方式有很多,我这个表单提交的方式是post
2. thinkphp3.2.3版本的IS\_POST现在改成了Request::instance()->isPost(),这里一定要记住别漏掉了use think\\Request;
3. 这个接收数据,用了助手函数input,看到下面写的是info=input('post.msg');
4. success跟error跳转其实并不只是跳转到上页,按照下面的方法可以在判断过后跳转到任何你想要去的地方,想去哪就去哪,return $this->success('留言成功', 'location:/index');
5. 首页显示的index方法中有一个循环变量输出的过程,这里时将查询到的所有数据保存为变量 $message,然后通过$this->assign('list',$message);就能在前台页面输出这组数据。
6. 插入数据的insert()方法中,将得到的数据直接传到下面的模型中,这个主要时命名空间要写准确就没有问题,格式像我这样写也可以,当然这样写:
1. use \\app\\index\\model\\MessageBoard;这个写在最上面;
2. $insert=MessageBoard::saves($info);
```
<?php
namespace app\index\controller;
use think\Controller;
use think\Request;
class Index extends Controller
{
/*首页显示*/
public function index()
{
$message=\app\index\model\MessageBoard::showmsg();
$this->assign('list',$message);
return $this->fetch();
}
/*插入数据的方法*/
public function insert()
{
if (Request::instance()->isPost()) {
$info=input('post.msg');
$insert=\app\index\model\MessageBoard::saves($info);
if ($insert) {
return $this->success('留言成功', 'location:/index');
}
}
return $this->fetch();
}
}
```
- 接着就是application\\model\\MessageBoard.php 模型了:
1\. 这里我们可以用trace($info)将接收到的数据打印出来看一下,打印的结果是在日志里面查看^\_^;
2\. 因为数据库的id是自增的,所以这里不用手动插入,存成功返回一个true就能触发上面的控制器中的if判断了,成立则sucess跳转到index页面就能看到刚刚写的留言了。
3\. showmsg()方法主要功能是查询出数据库的表中的留言,然后返回给控制器,再在页面上显示。这里因为数据比较少,我查的是所有的数据,仅供学习参考。要是需要限制条数,可以加一个limit(10),写法如下:
$lists=MessageBoard::where(\[\])->order('id desc')->limit(10)->select();
```
<?php
namespace app\index\model;
use think\Db;
class MessageBoard extends \think\Model
{
public static function saves($info)
{
$data['message']=$info;
$data['create_time']=time();
$Isinsert = MessageBoard::create($data);
if ($Isinsert) {
return true;
}else{
return false;
}
}
public static function showmsg(){
$lists=MessageBoard::where([])->order('id desc')->select();
return $lists;
}
}
```
需要注意的是,现在的首页显示是循环输出变量的情况,所以代码做了改动:
这个前台页面上面主要有一个地方需要注意,就是循环输出数据库的留言。
{volist name="list" id="vo"}
这个{$vo.message ?? '嗨,你还没有输入任何留言呢,赶紧写一条吧!'}是关键,两个问号一定要有,要是去掉的话,并且你的数据库么有留言,那么这个index页面就会报错了。这是5.0的的写法,三元运算很棒呢!
{/volist}
```
<html lang="en">
<head>
<meta charset="UTF-8">
<title>新码萌自学留言板</title>
<link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="{$Think.config.web_root}css/index.css">
<!-- <link rel="stylesheet" type="text/css" href="/static/css/index.css"> -->
</head>
<body>
<div class="container">
<div class="bord">
<div class="title"><span>留言板</span></div>
<div class="main">
<ul class="list-group">
{volist name="list" id="vo"}
<li class="list-group-item list-group-item-success">{$vo.message ?? '嗨,你还没有输入任何留言呢,赶紧写一条吧!'}</li>
{/volist}
</ul>
</div>
<div class="buttom">
<form action="index/index/insert" method="post">
<input class="input" name="msg"></input>
<input class="inputs btn-lg btn-success" type="submit" value="提交">
</form>
</div>
</div>
</div>
<script src="http://cdn.bootcss.com/jquery/1.11.1/jquery.min.js"></script>
<script src="http://cdn.bootcss.com/bootstrap/3.3.0/js/bootstrap.min.js"></script>
</body>
</html>
```
到这里,简单的留言板功能基本是完成了,还要把外观再优化以下,以及解说更详细点!只贴代码是不负责任的!
- 序言
- API开发实例
- 群文件,给萌码新的福利
- 一、登录(新增视频演示:第五节)
- (1)新建数据库
- (2)模板制作
- (3)MVC架构
- (4)config配置
- (5)功能实现及源码
- (6)URL优化
- (7)快速布置源码在电脑上
- 二、留言板
- (1)新建数据库
- (2)前端制作
- (3)MVC处理数据
- (4)功能实现及源码
- 三、API接口的调用
- (1)自制109新闻API
- (2)聊天机器人API
- (3)curl原理
- 四、文件上传
- (1)官网例子讲解
- (2)上传显示进度条
- 五、分页
- (1)简单分页
- (2)细说分页
- 六、增删改查(软删除)
- (1)单张表CURD
- (2)关联CURD
- (一)一对一关联CURD
- (二)一对多关联CURD
- (三)多对多关联CURD
- 七、二维码生成
- 八、Ajax调用
- 九、ico
- 十一、ckeditor富文本编辑器
- 十二、3分钟搭建服务器
- 十三、微信公众号开发
- (1)填写服务器配置
- 十四、自定义标签alert
- 十五、遍历二级菜单
- 十六、权限管理
- 十七、Thinkcmf分页样式优化
- 番外篇、红烧鲫鱼
- 第二期更新公告