因为采用了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的getField

b.助手函数-->添加数据

// 添加单条数据
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();

五》模型
一般对于某个表需要单独设置连接信息时用,否则直接用数据库是最节省资源的,速度是非常快的
 
 
 
 
 




最新文章

  1. CSS居中demo
  2. 提高你的数据库编程效率:Microsoft CLR Via Sql Server
  3. centos安装后iptables基本设置
  4. 通过发布项目到IIS上,登录访问报系统找不到System.Web.Mvc
  5. 学习Shell脚本编程(第5期)_表达式的比较
  6. Android模仿QQ空间图片上传——原理
  7. 【maven】将jar安装到maven本地仓库
  8. 非常实用的10个PHP高级应用技巧
  9. Navicat连接不上MySQL
  10. jQuery 遍历函数(八)
  11. [LeetCode] My Calendar I 我的日历之一
  12. Struts标签库详解【3】
  13. Linux遗忘root密码的其中两种解决方法
  14. 关于 Cortex-M3 的双堆栈机制
  15. centos上yum安装异常处理
  16. Python模块NumPy中的tile(A,rep) 函数
  17. DBA的规范
  18. vyos User Guide
  19. 修改ultisnips的默认键
  20. L180

热门文章

  1. 传播问卷调查数据不够?自己生成假数据!Python编程一对一教学
  2. python进阶之路7 数据类型的内置方法
  3. java入门与进阶 P-2.5+P-2.6
  4. 2023牛客寒假算法基础集训营4 A-H+JLM
  5. 12月19日内容总结——Q查询进阶、ORM查询优化、ORM事务、ORM常用字段类型和字段参数、Ajax介绍、数据编码格式、Ajax携带文件数据
  6. prometheus+grafana监控体验
  7. drf-序列化字段及参数、序列化和反序列化高级用法、ModelSerializer使用
  8. ASP.NET6 + Mongo + OData
  9. 通过Nacos配置刷新进行RabbitMQ消费者在线启停
  10. JZOJ 2645. 【NOIP2011模拟11.1】钓鱼