• 首页
  • 前端
    • HTML
    • CSS
    • Javascript
    • XML
    • AJAX
  • 前端框架
    • BootStrap
    • Jquery
  • PHP
    • 语法
    • 核心
    • 面向对象
    • PHP7
    • Socket
    • Swoole
  • 数据库
    • Mysql
    • Redis
    • Memcache
    • MongoDB
  • 优化
    • 优化方案
    • 页面静态化
    • Nginx
  • 后台框架与实战
    • Smarty
    • 源码Blog
    • TP3.2
    • TP3.2商城
    • TP5.0
    • TP5.0商城
    • Laravel
    • Laravel在线教育平台
    • Yii
    • Yii手机直播
    • CodeIgniter
    • Yaf
  • 移动开发
    • 微信公众号
    • 混合APP
  • 二次开发
    • DedeCMS
  • Linux
    • 基本操作
    • 环境搭建
  • 版本控制
    • GIT
    • SVN
  • Node.js
  • 资料库
没有结果
查看所有结果
  • 首页
  • 前端
    • HTML
    • CSS
    • Javascript
    • XML
    • AJAX
  • 前端框架
    • BootStrap
    • Jquery
  • PHP
    • 语法
    • 核心
    • 面向对象
    • PHP7
    • Socket
    • Swoole
  • 数据库
    • Mysql
    • Redis
    • Memcache
    • MongoDB
  • 优化
    • 优化方案
    • 页面静态化
    • Nginx
  • 后台框架与实战
    • Smarty
    • 源码Blog
    • TP3.2
    • TP3.2商城
    • TP5.0
    • TP5.0商城
    • Laravel
    • Laravel在线教育平台
    • Yii
    • Yii手机直播
    • CodeIgniter
    • Yaf
  • 移动开发
    • 微信公众号
    • 混合APP
  • 二次开发
    • DedeCMS
  • Linux
    • 基本操作
    • 环境搭建
  • 版本控制
    • GIT
    • SVN
  • Node.js
  • 资料库
没有结果
查看所有结果
没有结果
查看所有结果

TP5.0(三)Composer 安装验证码、登录验证码、AR 模式操作数据库、文章分类添加、文章分类列表展示、文章分类编辑、Ajax 无刷新分类删除、文章添加、富文本编辑器

Mr.Lee 由 Mr.Lee
2018年6月9日
在 TP5.0, 后台框架
0
TP5.0(一)部署、控制器、模块、命令行、路由、视图、模板赋值、常用标签、搭建后台首页、搭建登录页、页面跳转与重定向、Request 对象
0
分享
0
浏览

TP5第三天

composer

什么是composer

Composer 是 PHP 的一个依赖管理工具。它允许你申明项目所依赖的类库,它会在你的项目中为你安装他们。

假设有个文件A.php,我们项目中使用需要就include A.php 包含进来,但是A.php又基于B.php,所以我们在A.php文件中又需要include B,但是不幸的B.php又基于C.php和D.php,于是又要在B.php进行include C.php和D.php 。假设C和D文件又基于其他文件,那么这样互相依赖的引入是非常麻烦的。

那么在项目中使用composer就可以解决各个文件互相依赖的问题。除了解决文件依赖的关系,它还有更多的优点:

  • 下载网络上我们项目所需要的类库。
  • 可对下载的类库进行管理,如:删除、更新等众多便利的操作。

其实composer也就类似与Linux中yum,前端中的npm、bower等操作。这些工具都是可以用来管理我们的代码的。

安装composer

安装方式一般有两种方式:

第一种:去composer官网( https://getcomposer.org/download/ )下载Composer-setup.exe进行安装,由于此软件安装需要联网且服务器在国外安装很难成功,所以这里推荐使用下面第二种方式进行安装。

我们使用下面的安装方式

第二种:去官网https://getcomposer.org/download 下载composer.phar文件。

找到并进入 PHP 的安装目录,将下载的composer.phar 复制到 PHP 的安装目录下面,也就是和 php.exe 在同一级目录。

在 PHP 安装目录(D:\phpStudy\php\php-5.6.27-nts)下新建一个 composer.bat 文件,并将下列代码保存到此文件中。

@php “%~dp0composer.phar” %*

至此composer的安装就完成。

进入目录D:\phpStudy\php\php-5.6.27-nts中输入composer指令,出现如下提示代表安装成功:

为了可以全局(任意位置)访问composer,可以把php.exe的所在目录(D:\phpStudy\php\php-5.6.27-nts)定义在环境变量path选项中。

设置好后输入php -v即可看到php版本号。

cmd中任意位置输入composer指令:

配置composer为国内镜像

由于composer需要去网址为https://packagist.org获取代码库地址,再通过地址去github上去下载代码到我们项目本地,由于这两个地址服务器都在国外,访问比较慢,也不稳定。

配置国内镜像:输入命令

全局配置:composer config -g repo.packagist composer https://packagist.phpcomposer.com

局部配置:若只想在当前项目中有效,把上面的命令去掉 -g 即可。

几个有关的composer命令:

查看全局配置信息:composer config -gl

取消镜像:composer config -g –unset repos.packagist

查看当前版本:composer -v

升级版本:composer selfupdate

使用composer安装tp5验证码

手册位置:杂项–>验证码

composer.json的文件说明和具体使用:

参考网址:http://docs.phpcomposer.com/04-schema.html#archive

第一步:切换到tp5的composer.json 所在的目录,输入指令 composer require topthink/think-captcha进行安装

在当前目录打开cmd:ctrl+shfit+鼠标右键

安装成功后,会在vendor目录多出think-captcha

注:默认下载的tp5框架已经帮我们下载好了验证码,直接使用即可。

完成登录的验证码功能

我们需要把通过composer下载下来的验证码应用到我们tp5项目中。

手册位置:杂项–>验证码

或:https://packagist.org/packages/topthink/think-captcha

第一步:在login.html显示验证码

第二步:通过配置定义验证码的显示配置

第三步:登录时,判断验证码是否匹配成功

四、AR模式操作数据库

1、AR介绍

Active Record (AR) 模式 是一个流行的 对象-关系映射 (ORM) 技术。 每个 AR 类代表一个数据表(或视图),数据表(或视图)的列在 AR 类中体现为类的属性,一个 AR 实例则表示表中的一行。 常见的 CRUD 操作作为 AR 的方法实现。因此,我们可以以一种更加面向对象的方式操作数据库。

AR模式三个核心:

表–>模型类

表中一行–>模型对象

行的某列–>模型对象属性

AR模式完成CURD操作

AR完成新增

手册示例:

AR完成删除

手册示例:

AR完成更新

AR完成查询

完成文章分类的添加

1、完成模板数据的展示

第一步:修改后台的链接地址(left.html)

第二步:在后台admin建立一个Category的控制器,并建立一个add方法完成添加分类的功能

第三步:在当前模型的中,建立一个无限极分类的函数,完成栏目之间额层级缩进

第四步:模板中显示数据

效果:

完成数据的入库

第一步:在add方法中判断是否是post请求,完成数据的入库

第二步:使用验证器Validate进行入库前的数据验证过滤

建议把上面的验证写在一个验证器中,进行统计管理,也方便后期代码的维护,也可以增加代码的可读性。

所以,我们可以把上面的规则和提示信息抽离出来,写在独立的验证器中:

在add的方法中使用上面的验证器进行验证即可:

validate方法的源码位置:

此方法验证成功会返回true。

验证失败会返回错误信息,若不是批量验证返回一个字符串的错误信息,批量验证则返回一个错误的数组,可以使用implode拼接成一个字符串进行提示。

完成文章分类的列表展示

第一步:修改left.html加一个链接地址

第二步:在Category控制器加一个index 的方法完成分类的列表数据输出给模板

其中$newlists的数据打印如下:以每个元素cat_id作为下标。

第三步:模板中显示数据

上面的由于数组$lists下标0不存在,所以需要isset判断一下,但是这样写较麻烦,可以通过配置不报这种错误。修改common.php即可。

效果:

注:其中create_time和update_time在数据库中是时间戳的格式,但是受到配置文件database.php 的影响,获取数据时,自动转化为日期格式:

完成文章分类的编辑

第一步:修改列表的编辑的链接地址

第二步:在Controller控制器建立一个upd方法,完成编辑的功能

第三步:模板upd.html设置

小技巧:$(“select[name=’pid’]”).val(3); //代表把option标签value等于3的父分类默认选中

当然也可以使用下面的eq来判断,但是不推荐,因为比较麻烦,而且还要模板标签还要编译效率低。

使用Ajax完成文章分类的无刷新删除

传统删除

第一步:给删除设置链接地址

第二步:在Category控制器建立一个del方法,完成分类的删除

作业:删除分类考虑的两点

  1. 当前分类下面是否有子分类
  2. 当前分类下面是否存在文章

满足上面两个条件之一都不能删除。

2、ajax无刷新删除

删除分类考虑的两点

  1. 当前分类下面是否有子分类
  2. 当前分类下面是否存在文章

满足上面两个条件之一都不能删除。

第一步:给删除的a标签阻止默认行为,并且加一个自定义的属性cat_id,为了记录当前要删除的分类cat_id,同时设置一个delCat,目的给这一类的元素绑定单击事件

第二步:给class=’delCat’,绑定单击事件,获取属性cat_id,发送ajax请求

第三步:去Category控制器,建立一个ajaxDelCat的方法

第四步:ajax根据服务端响应的json数据,删除成功把当前tr给移除掉

完成文章的添加

完成文章模板的展示

第一步:修改left.html模板,加一个添加分类的链接地址

第二步:在后台admin创建一个Article控制器,并建立一个add方法,完成文章的入库操作

模板分配数据:

使用富文本编辑器完成文章的内容添加

第一步:把课件中的相应的ueditor复制到网站根目录下面的插件目录plugin中

第二步:引入核心js文件,并且给textarea 设置一个id=content

效果如下:

完成文章数据的入库

第一步:设置表单name值

第二步:在add方法中,完成数据的入库

4、使用验证器完成添加文章的验证

5、完成文章的图片上传

6、完成文章图片缩略图生成

十、完成文章的列表展示

数据展示

2、数据分页

 

标签: Ajax 无刷新分类删除AR 模式操作数据库Composer 安装验证码富文本编辑器文章分类列表展示文章分类添加文章分类编辑文章添加登录验证码
上一篇文章

TP5.0(四)添加文章、添加验证、图片上传、缩略图、图片预览、文章列表展示、分页、文章编辑、文章删除、XSS 攻击、Jquery-Validate 验证插件、钩子函数

下一篇文章

TP5.0(二)数据库操作、模型 CURD 操作、常用函数、时间戳自动维护、DB 构造器操作数据库、后台登录、后台退出、登录防翻墙、登录验证

下一篇文章
TP5.0(一)部署、控制器、模块、命令行、路由、视图、模板赋值、常用标签、搭建后台首页、搭建登录页、页面跳转与重定向、Request 对象

TP5.0(二)数据库操作、模型 CURD 操作、常用函数、时间戳自动维护、DB 构造器操作数据库、后台登录、后台退出、登录防翻墙、登录验证

发表回复 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Search

没有结果
查看所有结果

About Me

个人随笔

Winston Lee

Programmer

Hello & welcome to my blog! My name is Winston Lee and am a programmer and am keen on sharing.

Winston Lee

About Me

Hello & welcome to my blog! My name is Winston Lee and am a programmer and am keen on sharing.

Categories

  • AJAX
  • BootStrap
  • CodeIgniter
  • CSS
  • DedeCMS
  • GIT
  • HTML
  • Javascript
  • Jquery
  • Laravel
  • Laravel在线教育平台
  • Linux
  • Memcache
  • MongoDB
  • MVC
  • Mysql
  • Nginx
  • Node
  • PDO
  • PHP
  • PHP7
  • PHP基本语法
  • PHP核心编程
  • Redis
  • Smarty
  • Socket
  • SVN
  • Swoole
  • TP3.2
  • TP3.2商城
  • TP5.0
  • TP5.0商城
  • XML
  • Yaf
  • Yii
  • Yii手机直播
  • 二次开发
  • 优化方案
  • 前端技术
  • 前端框架
  • 后台框架
  • 基本操作
  • 微信公众号
  • 数据库
  • 未分类
  • 混合APP
  • 源码Blog项目
  • 版本控制
  • 环境搭建
  • 移动端开发
  • 网站优化
  • 资料
  • 面向对象
  • 面向对象编程
  • 页面静态化

Tags

DOM Json RBAC 事件 传参 函数 分页 判断语句 匿名函数 变量 图片上传 存储过程 安装 对象 封装 属性 接口 控制器 数据库操作 数据类型 数据表 数组 文件上传 无刷新分页 权限 标签 模型 正则 流程控制 目录结构 算法 类 索引 继承 缩略图 表关系 视图 路由 运算符 选择器 递归 配置 错误处理 页面静态化 验证码
  • 首页
  • 前端
  • 前端框架
  • PHP
  • 数据库
  • 优化
  • 后台框架与实战
  • 移动开发
  • 二次开发
  • Linux
  • 版本控制
  • Node.js
  • 资料库

沪公网安备31011502400873 | 沪ICP备2024050435号-3

没有结果
查看所有结果
  • 首页
  • 前端
    • HTML
    • CSS
    • Javascript
    • XML
    • AJAX
  • 前端框架
    • BootStrap
    • Jquery
  • PHP
    • 语法
    • 核心
    • 面向对象
    • PHP7
    • Socket
    • Swoole
  • 数据库
    • Mysql
    • Redis
    • Memcache
    • MongoDB
  • 优化
    • 优化方案
    • 页面静态化
    • Nginx
  • 后台框架与实战
    • Smarty
    • 源码Blog
    • TP3.2
    • TP3.2商城
    • TP5.0
    • TP5.0商城
    • Laravel
    • Laravel在线教育平台
    • Yii
    • Yii手机直播
    • CodeIgniter
    • Yaf
  • 移动开发
    • 微信公众号
    • 混合APP
  • 二次开发
    • DedeCMS
  • Linux
    • 基本操作
    • 环境搭建
  • 版本控制
    • GIT
    • SVN
  • Node.js
  • 资料库

沪公网安备31011502400873 | 沪ICP备2024050435号-3