- 首先是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> ``` 到这里,简单的留言板功能基本是完成了,还要把外观再优化以下,以及解说更详细点!只贴代码是不负责任的!