- 首先是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分頁樣式優化
- 番外篇、紅燒鯽魚
- 第二期更新公告