Thinkphp快速入门(一)
前言
使用的是tp6 版本
安装
# 通过composer安装,目录名thinkphp
# 我在 /Users/xieruixiang/php 目录下执行
composer create-project topthink/think thinkphp
# 得到 /Users/xieruixiang/php/thinkphp
省略index.php
# 这里我使用nginx + php-fpm
# 省略index.php,配置nginx
if (!-e $request_filename) {rewrite ^(.*)$ /index.php?s=/$1 last;
}# 设置完后 localhost/index.php/home/look url就等价于
# localhost/home/look
开启多应用
# 不介绍单应用了,一般一个项目不会只有一个应用,其次多应用兼容单应用
# 通过 composer require topthink/think-multi-app 安装多应用组件
# 其原理通过增加一个中间件来使路由指向正确的位置
# 安装后的app下的每一个目录都可以作为应用
# 每个应用下可以有独立的 controller,model,view,route,config 等目录
composer require topthink/think-multi-app
常用路由
# 默认路由
# 要带上应用模块
# /应用名/控制器名/方法名
# 以 app/admin/controller/Home.php 控制器为例 其中有look方法
# 如果要访该方法,通过
localhost/admin/home/look# 如果控制器方法不是在controller目录下,而是在controller的目录下
# 则需要通过 /应用名/子目录.控制器名/方法名进行访问
# 以 app/admin/controller/base/Home.php 控制器为例 其中有look方法
http://localhost/admin/base.home/look
# 指定路由
# 写在route目录下
# 以admin应用为例 app/admin/route/web.php
# web.php 可以改成其他名称,反正tp会加载route下的所有php文件
# 使用 think\facade\Route 门面
# Route::"method"("url","controller/action")
# method 限制其访问方法
# url 路由名 访问时需要带上应用名 /应用名/url
# controller控制器在当前应用中的位置
# action 即controller的方法
use think\facade\Route;
Route::get('home', 'base.home/look');
# 可以用过 http://localhost/admin/home 访问
# 其等价于 http://localhost/admin/base.home/look
# 资源路由
# Route::resoure("url","controller")
# url 路由名 访问时需要带上应用名 /应用名/url
# controller控制器在当前应用中的位置
# 这条路由会创建7条符合RESTful api的路由
Route::get('home', 'base.home');
# 等价创建
Route::get('home', 'base.home/index');
Route::get('home/create', 'base.home/create');
Route::post('home', 'base.home/save');
Route::get('home/:id', 'base.home/read');
Route::get('home/:id/edit', 'base.home/edit');
Route::put('home/:id', 'base.home/update');
Route::delete('home/:id', 'base.home/delete');
验证码
# 使用think-captcha 扩展
composer require topthink/think-captcha
# 可以通过config/captcha.php配置验证码的参数
return [//验证码位数'length' => 5,// 验证码字符集合'codeSet' => '2345678abcdefhijkmnpqrstuvwxyzABCDEFGHJKLMNPQRTUVWXY',// 验证码过期时间'expire' => 1800,// 是否使用中文验证码'useZh' => false,// 是否使用算术验证码'math' => false,// 是否使用背景图'useImgBg' => false,//验证码字符大小'fontSize' => 25,// 是否使用混淆曲线'useCurve' => true,//是否添加杂点'useNoise' => true,// 验证码字体 不设置则随机'fontttf' => '',//背景颜色'bg' => [243, 251, 254],// 验证码图片高度'imageH' => 100,// 验证码图片宽度'imageW' => 500,// 添加额外的验证码设置'verify' => ['length'=>4,],
];# 在模版中简单使用,其加载的是config/captcha.php 配置
<div>{:captcha_img()}</div>
# 要想灵活使用可以自己定义方法
# 方法中通过captcha("config")使用创建验证码方法
# config 为 null 时加载 config/captcha.php
# config 不为null 时加载 config/captcha.php 中的 “config” 属性
captcha(‘verify’)
# 加载的是 config/captcha.php 中的verify属性
# 故验证码只有四个组成
# 验证码的验证需要开启session
# seesion开启依赖于中间件
# 我只在admin应用中使用session
# app/admin/middleware.php 开启session
return [\think\middleware\SessionInit::class
];# 第一中验证验证码是否正确
# captcha_check($captcha)
# $captcha验证码的值
# 正确返回true,错误返回false
captcha_check("abc12")
第二种通过验证器验证
namespace app\admin\controller\base;use app\BaseController;
use think\Validate;class Home extends BaseController
{public function index(){return captcha('verify');}public function check(){$captcha = input('captcha', "");$validate = new Validate();$validate->rule(['captcha' => 'require|captcha'])->message(['captcha.captcha' => '验证码错误'])->check(['captcha' => $captcha]);if ($error = $validate->getError()) {return $error;}return "验证码正确";}}
Thinkphp快速入门(一)相关推荐
- php tp3 操作绑定到类,快速入门 17:操作绑定到类
# 快速入门(十七):操作绑定到类 如果你的应用规模比较大,每个操作方法彼此相对独立,那么就可以尝试下操作绑定到类的功能. ## 定义 系统提供了把每个操作方法定位到一个类的功能,可以让你的开发工作更 ...
- composer 依赖包版本冲突_composer快速入门教程
php中文网最新课程 每日17点准时技术干货分享 Composer 是 PHP 的一个依赖管理工具.我们可以在项目中声明所依赖的外部工具库,Composer 会帮你安装这些依赖的库文件,有了它,我们就 ...
- 第1讲韩顺平 PHP视频教程 zend framework zend介绍 zend快速入门 韩顺平php视频教程ppt 笔记心得
韩顺平 PHP视频教程 zend framework PPT笔记心得 本教程贯穿了两个软件公司常用的两个项目,数据采集系统和购物车,共分20讲从本质上深入浅出的分析了zend framework运 ...
- thinkph 上花院 生多行mysql_PHP_ThinkPHP3.1基础知识快速入门,在当今众多的MVC框架中,ThinkPH - phpStudy...
ThinkPHP3.1基础知识快速入门 在当今众多的MVC框架中,ThinkPHP是一个快速.简单的基于MVC和面向对象的轻量级PHP开发框架,其遵循Apache2开源协议发布,自从诞生以来一直秉承简 ...
- Shiro第一个程序:官方快速入门程序Qucickstart详解教程
目录 一.下载解压 二.第一个Shiro程序 1. 导入依赖 2. 配置shiro配置文件 3. Quickstart.java 4. 启动测试 三.shiro.ini分析 四.Quickstart. ...
- 计算机入门新人必学,异世修真人怎么玩?新手快速入门必备技巧
异世修真人怎么快速入门?最近新出来的一款文字修仙游戏,很多萌新不知道怎么玩?进小编给大家带来了游戏新手快速入门技巧攻略,希望可以帮到大家. 新手快速入门攻略 1.开局出来往下找婆婆,交互给点钱,旁边有 ...
- Spring Boot 2 快速教程:WebFlux 快速入门(二)
2019独角兽企业重金招聘Python工程师标准>>> 摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘 ...
- Apache Hive 快速入门 (CentOS 7.3 + Hadoop-2.8 + Hive-2.1.1)
2019独角兽企业重金招聘Python工程师标准>>> 本文节选自<Netkiller Database 手札> 第 63 章 Apache Hive 目录 63.1. ...
- 《iOS9开发快速入门》——导读
本节书摘来自异步社区<iOS9开发快速入门>一书中的目录,作者 刘丽霞 , 邱晓华,更多章节内容可以访问云栖社区"异步社区"公众号查看 目 录 前 言 第1章 iOS ...
最新文章
- 苹果风格:分享一组免费的自定义 MacOS 图标
- VTK:Filtering之ConnectivityFilter
- 基于域名的apache服务器
- 浅谈Opencl之OpenCL_flush 和 finish区别
- Flask + Vue.js : Fullstack Development
- 关于国庆假期延长的通知
- 鸿蒙系统下载地址_华为鸿蒙系统下载
- Python:火山小视频-无水印视频-多线程-批量采集实现和完整代码
- KITTI Odometry数据集处理:将全局pose转换为帧间pose转换
- html当当书网站 html网上在线书城 html在线小说书籍网页 当当书城网页设计
- 怎么做扁平化ps图标长投影效果
- 扣哒世界的游戏开发2-2军事训练2
- 简述MySQL分区表类型
- PHP涉及的所有英文单词
- 常用的软件(百度网盘分享:永久有效)
- 关于SQL_Errno1677导致主从复制中断处理
- chai断言库学习3-Core Plugin Concepts
- 九联unt401h装软件_九联UNT401H南传刷机包 V1.0 免费版
- 计算机信息化教育的意义,论信息技术对于教育的重要性
- 汉字的Unicode 内码
热门文章
- 四参数坐标转换c++_写给测绘新手,四参数与七参数坐标转换含义及区别
- 2022-2028全球与中国食品饮料包装透明沉积膜市场现状及未来发展趋势
- 微信小程序wxs文件,(indexOf方法)
- 头歌-数据结构与算法 - 线性表
- Final Cut Pro X 10.4.9 中文英文多语言版-苹果视频剪辑FCPX软件
- 反洗钱机器学习_为什么不使用机器学习来打击洗钱活动?
- 贪心算法解决马的遍历(带蹩马腿)
- [无线] 让Android支持cmwap上网
- web应用越权问题的三个解决思路
- MATLAB学习八(四):相关系数corrcoef