
ThinkPHP5博客系统
文章平均质量分 93
1.从零开始搭建一个完整的基于thinkPHP5的博客系统;
2.使用前提:掌握html,css,js和php的基础知识。
骑着代马去流浪
这个作者很懒,什么都没留下…
展开
-
[thinkPHP5项目实战_01]thinkPHP5的引入及域名重新定向
1.开发前环境配置使用PHPstudy搭建本地运行环境,使用Nginx作为本地服务器2.thinkPHP5的引入进入thinkPHP主站http://www.thinkphp.cn/下载thinkPHP5.x版本的文件,下载完成后解压目录及对应的作用如下:project 应用部署目录├─application 应用目录(可设置)│ ├─common原创 2017-08-10 00:13:12 · 9509 阅读 · 1 评论 -
[thinkPHP5项目实战_02]命名空间的定义
1.命名空间解决的问题1)用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突;2)为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性。 作用:对类、函数和和const定义的常量起作用2.命名空间的用法<?php namespace MyProject ;const CONNECT_OK原创 2017-08-10 10:06:57 · 1350 阅读 · 0 评论 -
[thinkPHP5项目实战_03]子命名空间及命名空间的访问方式
1.子命名空间定义PHP提供了层次化的空间命名方式,类似于一个虚拟目录,tp5会自动加载该命名空间<?phpnamespace app1\pro1\item1;function func(){ echo "func1";}const x = "name1";2.命名空间的三种访问方式1)非限定名称访问访问的元素前面不包含前缀,即访问当前定义的元素。2)限定原创 2017-08-10 11:02:21 · 1132 阅读 · 0 评论 -
[thinkPHP5项目实战_04]命名空间的引入
1.为命名空间名称使用别名即在命名空间中引入其他的命名空间,使用use操作符实现。引入其他的命名空间后,使用只需在元素前面加上子命名空间的前缀即可,无需写上引入的全部空间名称<?phpnamespace app1\pro1\item1; header("content-type:text/html;charset=utf-8");function func(){ echo "f原创 2017-08-10 14:36:38 · 1510 阅读 · 0 评论 -
[thinkPHP5项目实战_05]自动生成目录结构
ThinkPHP5.0 具备自动创建功能,可以用来自动生成需要的模块及目录结构和文件等,自动生成主要调用\think\Build类库。1.定义生成目录规则thinkPHP5默认自带了一个定义自动生成规则文件,build.php,位于根目录下<?phpreturn [ // 生成应用公共文件 '__file__' => ['common.php', 'config.ph原创 2017-08-10 18:34:48 · 4382 阅读 · 0 评论 -
[thinkPHP5项目实战_06]引入前台页面
1.输出替换原创 2017-08-11 15:49:02 · 9025 阅读 · 2 评论 -
[thinkPHP5项目实战_07]引入后台管理页面
后台页面的引入与前台页面的引入类似。1.后台页面资源布置1.1.后台首页位置后台管理应作为一个单独的模块存放,在application中新建admin文件夹,用于存放后台管理的控制器和视图:其中admin中的index.html为后台首页。1.2.后台页面静态资源存放位置在puclic/static文件夹新建一个admin文件,放入后台页面的静态资源:2原创 2017-08-13 18:51:34 · 6685 阅读 · 3 评论 -
[thinkPHP5项目实战_08]模板分离和URL生成
1.模板分离在前端网页项目中不同的页面存在公共的模块,例如头部、底部和侧边栏等,使用tp5的模板分离可以将这些公共模块抽出,在需要的页面进行引入减少前端代码量,提高运行效率以前台页面为例,在application/index/view下面新建一个Public文件夹,用于存放页面公共模板,分别新建header.html,resource.html,footer.html,sidebar.ht原创 2017-08-15 12:17:15 · 5108 阅读 · 1 评论 -
[thinkPHP5项目实战_09]后台添加栏目及验证
1.后台的模板分离和URL生成上一篇介绍了前台页面的模板分离和URL生成,构建博客系统还需要后台管理系统,通过类似的方法构建后台的模板其中cate.php为文章管理控制器,Cate类下面的add函数用于添加文章<?phpnamespace app\admin\controller;use think\Controller;class Cate extends Contro原创 2017-08-23 17:52:28 · 1864 阅读 · 5 评论 -
[thinkPHP5项目实战_10]栏目列表输出和删除
上一篇分享了如何添加栏目和验证。1.栏目列表输出添加栏目后需要将其从数据库中取出展示在列表上,比如数据库的tp5_cate有以下数据:在Cate控制器的lists方法中读取数据数据并赋值给模板 public function lists() { // 使用查询构造器查询数据cate表中的所有数据赋给$cateres $cater原创 2017-08-24 19:16:41 · 2052 阅读 · 3 评论 -
[thinkPHP5项目实战_11]栏目修改
上一篇分享了栏目的循环输出和栏目删除。如果开发过程中出现了页面不可用,请稍后再试,可以将application文件夹下的config.php文件中的调试模式打开,可以看到代码报错提示信息。 // 应用调试模式 'app_debug' => true,1.模板和edit方法构建在admin模块的view文件夹下新建edit.html文件,该模板原创 2017-08-25 16:02:39 · 1161 阅读 · 0 评论 -
[thinkPHP5项目实战_12]文章管理界面创建
1.创建文章信息存储数据表访问http://localhost/phpMyAdmin/index.php默认账号和密码为root,创建数据库tp5,新建数据表tp6_article,字段数为8分别新建八个字段:ID,类型mediumint,自动增加,设为主键,注释IDtitle,类型 varchar,长度30,注释标题keywords,类型varchar,长度150,注释关原创 2017-08-29 19:27:23 · 1584 阅读 · 0 评论 -
[thinkPHP5项目实战_13]新增文章界面附件上传
1.新增文章验证器和控制器根据[thinkPHP5入门实战_09]后台添加栏目及验证介绍新增栏目的方式构建新增文章的操作方法构建验证器validate/Article.php:<?phpnamespace app\admin\validate;use think\Validate;class Article extends Validate{ //验证规则原创 2017-08-31 18:05:52 · 961 阅读 · 0 评论 -
[thinkPHP5项目实战_14]场景验证
thinkPHP5提供了场景验证功能,参考文档位于https://www.kancloud.cn/manual/thinkphp5/129322比如在创建栏目中,我们不允许关键词为空,而在编辑栏目时允许关键词为空,在同一个验证器中,可以针对这些不同的场景进行不同的验证定义首先打开之前写好的cate验证器application/admin/validata/Cate.php,添加红色代码:原创 2017-10-16 16:19:50 · 1672 阅读 · 0 评论 -
[thinkPHP5项目实战_15]创建文章读取栏目列表
本文分享在创建文章时读取栏目列表并选择的功能首先在数据库中添加cateid字段,类型为mediumint创建文章的页面展示cate代码: 描述:原创 2017-10-16 17:46:52 · 1281 阅读 · 1 评论 -
[thinkPHP5项目实战_16]文章列表展示
文章列表展示的主要功能点有:联动栏目数据库查询文章对应的栏目展示出来;展示略缩图;展示格式化时间;列表分页;1.数据库联动查询thinkPHP5提供了数据库查询的链式操作查询方法https://www.kancloud.cn/manual/thinkphp5/118083我们要根据article表的cateid来查询cate表中cateid对应的catename,操作方原创 2017-10-17 15:05:36 · 1193 阅读 · 0 评论 -
[thinkPHP5项目实战_17]文章编辑
本文设计到的主要技术点有:页面间传值;数据库查询;模板赋值;下拉框赋值,略缩图展示等1.文章列表页面修改跳转点击修改跳转到edit页面,并将文章的id值传过去$vo.artid))}">修改2.在edit操作方法中中根据传过来的id值查询数据库对应的文章 public function edit() { //根据传过来的id值查询对应的原创 2017-10-17 18:25:53 · 1213 阅读 · 0 评论 -
[thinkPHP5项目实战_18]友情链接界面搭建和数据添加
类似于添加栏目和文章完善添加友情链接的功能分别新建友情链接link对应的视图模板、控制器和验证器文件:打开phpmyadmin,新建tp5_link数据表储存链接信息:修改侧边栏导航sidebar.html文件,添加友情链接列表导航友情链接在友情链接列表模板Link/lists.html中添加新增链接跳转新增链接新建Link/add.html文件作为增加模板原创 2017-10-18 12:51:46 · 2053 阅读 · 0 评论 -
[thinkPHP5项目实战_19]模型添加数据
thinkPHP5提供了模型增加数据的功能,通过实例化模型来实现数据库操作,下面以增加链接为例分享改功能的使用在admin下新建文件model/Link.php模型文件并初始化定义<?php namespace app\admin\model;use think\Model;class Link extends Model{} ?>在对应的Link控制器中引入该文件并重命原创 2017-10-18 14:47:34 · 2270 阅读 · 0 评论 -
[thinkPHP5项目实战_20]友情链接功能完善
1.友情链接列表输出及分页模板表单代码: ID 标题 描述 地址 操作 {volist name="linkres" id="vo"} {$vo.i原创 2017-10-18 16:01:59 · 1438 阅读 · 1 评论 -
[thinkPHP5项目实战_21]管理员添加、删除和修改
与之前的业务一样,管理员的添加和删除代码如下:1.新建admin的控制器、视图和验证器文件:2.控制器代码:<?phpnamespace app\admin\controller;use think\Controller;class Admin extends Controller{ public function lists() { $原创 2017-10-29 22:51:10 · 5890 阅读 · 0 评论 -
[thinkPHP5项目实战_22]管理员登录
管理员登录就是根据用户输入的信息对数据库进行比对返回处理结果数据库连接处理放在模型model中新建登录对应的控制器文件controller/Login.php,模型文件model/Login.php,视图view/Login/login.html1.模型模型用于接收从控制器传过来的数据进行处理<?php namespace app\admin\model;use thin原创 2017-10-29 23:51:48 · 2073 阅读 · 0 评论 -
[thinkPHP5项目实战_23]管理员登录信息展示、登出和登录状态检测
1.管理员登录信息展示和修改登录成功后需要在头部展示登录的管理员的名称信息,并且点击修改能跳转到修改页面进行操作登录成功后,需要将用户的信息写入服务器的session中,从session中获取用户名和idthinkPHP5的session使用方法:https://www.kancloud.cn/manual/thinkphp5/126166在登录的model中成功后写入sessio原创 2017-10-30 00:48:43 · 7704 阅读 · 0 评论 -
[thinkPHP5项目实战_24]前台页面导航栏目调用
之前的前台页面的导航栏是通过a标签实现跳转的,但是在实际项目中栏目的信息可能是动态变化的,因此展示的导航栏也会根据数据库存储的变化而变化;通过后台操作对导航栏的管理,实现前台页面的展示。每次打开前台页面都需要优先展示导航栏,需要创建初始化方法在其他页面的控制器调用之前调用导航栏页面首先,在后台创建自己想要的导航栏目:在application/index模块下创建控制器Bas原创 2017-11-11 16:38:18 · 4257 阅读 · 0 评论 -
[thinkPHP5项目实战_25]前台文章列表展示
前台导航完成后就需要将每个栏目下对应的文章展示到栏目下;每个栏目展示对应的lists控制器的index操作方法打开application/index/controller/Lists.php文件:<?phpnamespace app\index\controller;class Lists extends Basic{ public function index()原创 2017-11-11 21:43:54 · 1262 阅读 · 0 评论 -
[thinkPHP5项目实战_26]前台文章关键词搜索
每篇文章下面展示有关键词,点击关键词可以查询该栏目下的所有具有该关键词的文章;点击关键词,需要将该关键词当做参数传值tahs控制器进行联表查询;在index模块下新建控制器Tags.php:<?phpnamespace app\index\controller;class Tags extends Basic{ public function index() {原创 2017-11-11 23:20:33 · 3091 阅读 · 0 评论 -
[thinkPHP5项目实战_27]前台文章内容展示
在文章列表下点击文章进入文章展示页面;本文介绍的文章展示页面功能包括:文章内容(标题,时间,图片,内容),文章点击数,上一篇下一篇功能。文章的详情信息有Article控制器操作:<?phpnamespace app\index\controller;class Article extends Basic{ public function index() {原创 2017-11-12 00:22:39 · 2285 阅读 · 0 评论 -
[thinkPHP5项目实战_28]前台文章"相关文章"的功能完善
在文章详情页面需要展示相关文章列表,该列表使用过当前文章的关键词来获取的;当前文章的关键词可能不止一个,因此需要查询所有文章是否具有该关键词,如果有则将该文章相关信息储存到数组中;这样遍历出来文章可能重复,因为需要对该数组中的文章进行去重;去重的方法有很多,这里使用对数组降维的处理方法;由于获取的文章信息也是数组,所以储存相关文章的列表就是二维数组;将其将为以为数组,文章信息数原创 2017-11-12 01:35:08 · 1662 阅读 · 0 评论 -
[thinkPHP5项目实战_29]前台首页和文章搜索功能完善
1.首页功能首页展示出所有文章,因此需要单独处理,首先在后台将首页的栏目删除,并将首页栏目下的文章移到其他栏目或者删除;在头部导航header.html单独对首页进行处理; 首页 {volist name="navres" id="vo"} <a class="blog-nav-item" h原创 2017-11-12 14:54:55 · 3785 阅读 · 0 评论 -
[thinkPHP5项目实战_30]留言板功能完善
实现的功能:打开留言本页面展示留言,并提供留言功能:打开application/index/controller/Guest.php控制器:<?phpnamespace app\index\controller;class Guest extends Basic{ public function index() { if(request()->i原创 2017-11-12 15:53:48 · 3450 阅读 · 2 评论 -
[thinkPHP5项目实战_31]结语和GitHub源码下载地址
2018-5-7更新:由于上传代码失误的原因,导致public/static目录下丢失部分css和js代码,对于曾经参考或下载该源码的小伙伴们表示深深的歉意。但是过去了很久这部分丢失的代码没有进行有效的保存,所以再次使用该代码请慎重。这部分的样式主要参考bootstrap的官方模板https://v3.bootcss.com/examples/dashboard/2018-1-2更新:之前上传到g...原创 2017-11-12 16:20:11 · 4400 阅读 · 3 评论