thinkphp5框架使用总结
因为采用了mvc模式,所以理解上为了简便,把控制中心作为一个浏览对象去处理,其他不要去考虑只把它们当做附属物
一.路径访问方式
http://网址/index.php/模块/控制器/操作.html
其中:1.模块就是application下的一个文件夹2.控制器就是这个文件夹下面controler里的一个php文件3.操作就是控制器文件里的一个方法
二。控制器总结。
1.定义,首先要写上命名空间(也就是这个文件所在的目录)
namespace app\index\controller;
那么这个代表当前控制器文件的路径是在application文件夹下面的index文件夹下面的controler文件夹里。
1.每一个控制器就是一个类,要引用其他类:
use think\Controller;
use think\View;
创建完类后就可以实例化了,然后使用,$view
所有变量的定义前面都是加一个符号:$
2.内容渲染输出,都要用到return;
3.制定模板文件,用view助手即可;return view('index');【表明显示的html文件是view文件夹下的当前控制器文件名对应的文件夹下index.html文件】
一个控制器文件对应view下的一个相同名称的文件夹,文件夹每个模板对应一个操作方法!
4.控制器传递变量到模板文件: $this->assign('domain',$this->request->url(true));【前提要控制器继承class Index extends Controller类】
三.获取请求参数:
使用助手函数获得请求实例
$request = request();
// 获取当前请求的name变量
$request
->param('name');
// 获取当前请求的所有变量(经过过滤)
$request
->param();
使用助手函数直接获取请求参数:
input('name');
input('');
注意:默认实param所以不需要写实例名,如果获取session的或者cookie的要这样写:input('cookie.name')
四:操作数据库:
a.助手函数-->查询数据
系统提供了一个db
助手函数,可以更方便的查询:
db('user')->where('id',1)->find();
db('user')->where('status',1)->select();
注意:使用db助手函数默认每次都会重新连接数据库,而使用
Db::name
或者Db::table
方法的话都是单例的。db函数如果需要采用相同的链接,可以传入第三个参数,例如:db('user',[],false)->where('id',1)->find();
db('user',[],false)->where('status',1)->select();
上面的方式会使用同一个数据库连接,第二个参数为数据库的连接参数,留空表示采用数据库配置文件的配置。
// 返回某个字段的值
Db::table('think_user')->where('id',1)->value('name');查询某一列的值可以用
// 返回数组
Db::table('think_user')->where('status',1)->column('name');
// 指定索引
Db::table('think_user')->where('status',1)->column('name','id');
Db::table('think_user')->where('status',1)->column('id,name'); // 同tp3的getFieldb.助手函数-->添加数据
// 添加单条数据
db('user')->insert($data); // 添加多条数据
db('user')->insertAll($list);c.助手函数-->更新数据
// 更新数据表中的数据
db('user')->where('id',1)->update(['name' => 'thinkphp']);
// 更新某个字段的值
db('user')->where('id',1)->setField('name','thinkphp');
// 自增 score 字段
db('user')->where('id', 1)->setInc('score');
// 自减 score 字段
db('user')->where('id', 1)->setDec('score');d.助手函数-->s删除数据
// 根据主键删除
db('user')->delete(1);
// 条件删除
db('user')->where('id',1)->delete();e.条件查询方法
查询语法:where('字段名','表达式','查询条件');
表达式 含义 EQ、= 等于(=) NEQ、<> 不等于(<>) GT、> 大于(>) EGT、>= 大于等于(>=) LT、< 小于(<) ELT、<= 小于等于(<=) LIKE 模糊查询 [NOT] BETWEEN (不在)区间查询 [NOT] IN (不在)IN 查询 [NOT] NULL 查询字段是否(不)是NULL [NOT] EXISTS EXISTS查询 EXP 表达式查询,支持SQL语法 > time 时间比较 < time 时间比较 between time 时间比较 notbetween time 时间比较
可以使用
where
方法进行AND
条件查询:Db::table('think_user')
->where('name','like','%thinkphp')
->where('status',1)
->find();使用
whereOr
方法进行OR
查询:Db::table('think_user')
->where('name','like','%thinkphp')
->whereOr('title','like','%thinkphp')
->find();用于查询
指定字段
在查询操作中field方法是使用最频繁的。
Db::table('think_user')->field('id,title,content')->select();
五》模型
一般对于某个表需要单独设置连接信息时用,否则直接用数据库是最节省资源的,速度是非常快的
thinkphp5框架使用总结的更多相关文章
- PHP/ThinkPHP5 框架集成微博登录入库流程示意
PHP/ThinkPHP5 框架集成微博登录入库流程示意 第三方登陆这个东东,目前主要是 微信.微博.qq.淘宝.支付宝 等几个.他们都是基于oath2协议的.原理差不多.这里记录的是我测试的新郎微博 ...
- 22.ThinkPHP5框架缺陷导致远程命令执行
前言: 昨天爆出了ThinkPHP5框架缺陷导致远程命令执行,大佬们都赶上潮流挖洞,小白还是默默学习一下这个漏洞 漏洞影响范围: Thinkphp 5.1.0 - 5.1.31 Thinkphp 5. ...
- (进阶篇)PHP(thinkphp5框架)实现用户注册后邮箱验证,激活帐号
本文将结合实例,讲解如何使用thinkphp5+Mysql完成注册帐号.发送激活邮件.验证激活帐号.处理URL链接过期的功能. 业务流程 1.用户提交注册信息. 2.写入数据库,此时帐号状态未激活. ...
- thinkphp5框架之请求
又看到请求这一部分,个人认为这部分是算重要的一部分 单独记一篇笔记. 0x01 request请求对象 如果要获取当前的请求信息,可以使用\think\Request类,完全开发手册中也有提到,继承系 ...
- thinkphp5框架笔记(ing)
重新整理下学习tp5手册的笔记.自己再好好看一次tp5的开发手册,学到哪里记到哪里. 0x01 安装 Composer安装 ThinkPHP5支持使用Composer安装 curl -sS https ...
- thinkphp5框架生成二维码
二话不说,先上代码: 第一中: 不用再本地保存文件,直接在前台页面显示: 这是控制器里面的内容,哦,对啦,首先要下载SDK:.phpqrcode类文件下载,下载地址:https://sourcefor ...
- thinkphp5 框架修改的地方
框架修改的地方 vendor/topthink/think-captcha/src/Captcha.php api验证码入库 196行 $img_code = strtoupper(implode(' ...
- thinkPHP5框架路由常用知识点汇总
一.路由的模式 普通模式(默认pathinfo,不解析路由) 'url_route_on' => false 混合模式(pathinfo+解析路由) 'url_route_on' => t ...
- 基于thinkphp5框架做一个可以区别开发、测试、生产三种环境的配置加载
在日常的开发测试中我们经常会遇到本地开发和测试或者线上配置参数不同的场景,必要你要是使用一个三方的支付,它的本地测试和线上的key值或者账号存在不同.最基本的做法是本地用测试参数,提交到测试的时候再改 ...
- ThinkPHP5框架缺陷导致远程命令执行(POC整合帖)
摘要 近日thinkphp团队发布了版本更新https://blog.thinkphp.cn/869075 ,其中修复了一处getshell漏洞. 影响范围 5.x < 5.1.31<= ...
随机推荐
- 前端程序员学python(爬虫向)(一文修到筑基期) (本文不含知识诅咒)
我踏马来辣 还有一件事: 本教程配合c语言中文网 python爬虫 教程 食用 本教程不适用于未成年人 一定要刷牙 本教程不存在知识诅咒 学完本教程即可进入筑基期 js 基础和本教程学习效率成正比 不 ...
- C组合方案
递归实现组合型枚举 从 1∼n 这 n 个整数中随机选出 m 个,输出所有可能的选择方案. 输入格式 两个整数 n,m ,在同一行用空格隔开. 输出格式 按照从小到大的顺序输出所有方案,每行 1 个. ...
- [LeetCode]819. 最常见的单词
题目 给定一个段落 (paragraph) 和一个禁用单词列表 (banned).返回出现次数最多,同时不在禁用列表中的单词.题目保证至少有一个词不在禁用列表中,而且答案唯一. 禁用列表中的单词用小写 ...
- Blazor Hybrid (Blazor混合开发)更好的读取本地图片
在 Blazor Hybrid 应用中,Razor 组件在设备上本机运行. 组件通过本地互操作通道呈现到嵌入式 Web View 控件. 组件不在浏览器中运行,并且不涉及 WebAssembly. R ...
- 【原创】项目六 Load Of The Root
实战流程 新创建文件夹,在这个文件夹里进行操作 nmap扫描下网段 根据nmap逐个排查,发现目标主机,但只有22端口 因此进一步扫描22端口的具体信息,没有扫出很有用的信息 发现靶场又提示一个用户, ...
- 你想成为.Net 7的技术高手吗?来这里看看
前言: 你是否时常觉得,整天搞些Curd和增删改查.这些毫无意义的东西,完全是浪费生命.想要进阶,成为高手.却苦于找不到方法,没有一套系统性的东西. 有鉴于此,新建了一个群,方便大家一起交流和分享一些 ...
- Linux CentOS7查看软件包安装时间
rpm -qi 软件包名,比如httpd,lrzsz [devops@host9 ~]$ rpm -qi lrzsz Name : lrzsz Version : 0.12.20 Release : ...
- 构建api gateway之 负载均衡
什么是负载均衡 负载均衡,英文名称为Load Balance,其含义就是指将负载(工作任务)进行平衡.分摊到多个操作单元上进行运行 以下为几种负载均衡策略介绍 1.随机(Random) 大家很多时候说 ...
- Maven配置 阿里云镜像地址
<?xml version="1.0" encoding="UTF-8"?> <settings> <mirrors> &l ...
- idea debug---启动超级慢,提示”Method breakpoints may dramatically slow down debugging“的解决办法
https://blog.csdn.net/hanqing456/article/details/111878982 1.问题项目正常启动的时候没问题,debug模式就卡住了,很久不动.我推测是哪个断 ...