(一)ThinkPHP实践之留言板前台-TTLSA

  • A+
所属分类:PHP ttlsa教程系列

这里是源码下载地址,随着项目深入,会不定时更改源码文件
https://github.com/tonyty163/message-board/archive/master.zip

在这里的大部分代码是通过thinkphp的官方视频教程来学习的。如果觉得文字太枯燥的话,也可以看视频学习。
视频链接:http://www.thinkphp.cn/document/313.html

以后我们知识点的讲解,会专注精力在项目讲解上,以结果为导向提供大家所需的知识讲解。

留言板是我们的第一个项目,那么我们就来认真分析下留言板的需求,以及由哪些功能模块来实现的。
1、前台功能
(1) 显示留言
需求:进入留言板,要先看到别人的留言
功能模块:展示系统内所有留言

(2) 签写留言
需求:写入自己的留言,可实名,可匿名
功能模块:插入留言,跳转回留言页面

2、后台功能
(1) 留言管理
需求:管理员需要对留言进行管理
功能模块:删除留言

在开始编写项目之前,需求分析是一个重点任务,好的需求分析,可以达到事半功倍的作用。

一、前台
1、需求分析
(1)显示内容:将数据库内所有留言信息显示,内容包括(留言ID,用户名,内容,留言时间)
(2)新增内容:用户名(可留空,默认为匿名用户),内容(必填内容)

2、建库
知识点:
1、数据库建库,建表,
2、数据类型了解
3、SQL语句了解
4、phpmyadmin工具熟悉

数据库需求
需要提交留言板内容
id(留言用户id) 类型为int,最大长度11位
username(用户名) 类型为char,最大长度16位,不能为空,默认值为“匿名用户”
content(内容) 类型为varchar,最大长度100位,不能为空
time(留言时间) 类型为timestamp,默认值为“当前时间”

由上所知,数据库结构为
库名message_broad
表名tb_broad
id int类型(11位长度),非负,非空,自增
username char类型(16位长度),非空
content varchar类型(100位长度),非空
time timestamp类型,非空,默认是当前时间戳

建库语句(如果不熟悉,可以采用一些工具来协助实现,如phpmyadmin),建好库board以后,直接复制以下SQL语句,即可完成建表操作

3、修改相关配置
知识点:
1、thinkphp运行机制,目录结构
2、index.php入口文件,App配置,调试模式,引用框架
3、config.php配置文件,配置数据库相关连接参数

数据库配置好后,可在项目目录的入口文件定义项目名称,文件创建位置在网站根目录下(我的本地环境中为C:/wamp/www/)message(自建项目目录)/index.php
在开始配置之前,建议把下载好的thinkphp框架文件拷贝到message目录下,在这里我下载的是3.1.3版本,目录名注意大小写(ThinkPHP),这样在你调用的时候可避免因为环境不同而产生的错误
接下来就要在index.php入口文件中定义相关项目,具体内容如下:

老规矩,配置完这条,看见笑脸,就说明你配置框架成功了。同时可在message目录下,生成了board目录。

接下来我们需要完成相关的数据库配置,即可在控制器中完成相关数据库操作
文件路径为message/board/Conf/config.php
添加内容如下:

4、建立控制器 Controller
知识点:
1、控制器目录结构
2、控制器运行流程
3、控制器IndexAction定义
4、默认方法index()定义,数据库实例化M方法,查询数据,插入数据,赋值变量,调用模板,并将变量传入模板
5、自定义表单提交方法handle,提交表单验证,异常处理,提取表单数据方法I,将表单数据插入数据库,成功和失败方法反馈,跳转方法U

配置全部完成,接下来就是我们开始写控制器的时候了,入口文件进来,都会找默认控制器,路径为message/board/Lib/action/IndexAction.class.php
将原有内容删除,拷贝以下内容替代:

由于没有用到过于复杂的逻辑操作,所以就不引入模型了,直接进入视图Viewer的讲解。

5、建立模板表单 Viewer
知识点:
1、模板路径
2、模板表单html文件基础,可参考相关html文档
3、模板中调用thinkphp函数U
4、foreach标签用法(非html标签),循环输出变量中的各字段
5、将输出字段作为输入,传递给函数处理

控制器建立完毕,接下来就要基于控制器指定的路径建立Index目录index.html模板文件,路径为message/Tpl/Index/index.html,如有不理解,可以仔细查看控制器讲解

weinxin
微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:8   其中:访客  7   博主  0   引用   1

    • 匿名 9

      菊花

      • 9

        撒啊啊

        • 9

          • 等等 9

            • phper 9

              ‘DB_PREFIX’ => ‘tb_’ 应该为’DB_PREFIX’ => ‘think_’

              • 防风网 9

                不错的文章,内容才高八斗.

              • 来自外部的引用: 1

                • 肉牛