加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

[转]赵桐正thinkphp教程笔记

发布时间:2020-12-14 13:56:20 所属栏目:大数据 来源:网络整理
导读:原文:?,有修改 常用配置 ? ? 常用配置config.php: '配置值' 'URL_PATHINFO_DEPR' => '/', 'TMPL_L_DELIM' = '{',span style="color: #008000;"gt;///spanspan style="color: #008000;"gt;左定界符/span'TMPL_R_DELIM' = '}',span style="color: #008000;"

原文:?,有修改

常用配置

? ? 常用配置config.php:

'配置值' 'URL_PATHINFO_DEPR' => '/',
'TMPL_L_DELIM' => '<{',<span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;左定界符</span>
'TMPL_R_DELIM' => '}>',<span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;右定界符

//数据库相关</span>
'DB_PREFIX' => 'mb_','DB_DSN' => 'mysql://root:admin@localhost:3306/myblog',<span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;打开页面跟踪</span>
'SHOW_PAGE_TRACE' => <span style="color: #0000ff;"&gt;true</span>,<span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;模板文件</span>
'TMPL_TEMPLATE_SUFFIX' => '.tpl',<span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;后缀名</span>
'TMPL_FILE_DEPR' => '_',<span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;修改模板文件目录层次

//模板主题</span>
'DEFAULT_THEME' => 'my','TMPL_DETECT_THEME' => <span style="color: #0000ff;"&gt;true</span>,'THEME_LIST' => 'your,my',<span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;支持的模板列表

//自定义模板常量</span>
'TMPL_PARSE_STRING' => <span style="color: #0000ff;"&gt;array</span><span style="color: #000000;"&gt;(
    </span>'__CSS__' => __ROOT__.'/Public/css','__JS__' => __ROOT__.'/Public/js'<span style="color: #000000;"&gt;
)</span>,<span style="color: #000000;"&gt;

);
?>

? ? 在config.php中配置:

'DB_TYPE'=>'mysql', 'DB_HOST'=>'localhost', 'DB_NAME'=>'thinkphp', 'DB_USER'=>'root', 'DB_PWD'=>'', 'DB_PORT'=>'3306', 'DB_PREFIX'=>'tp_', 'DB_DSN'=>'mysql://root:root@localhost :3306/thinkphp',

? ? 连接:需要在方法中通过new Model(表名)的形式操作数据库

= Model('User'=->select();

=M('User'=->select();

add()?

?? ?删 -D Delete $m->delete()?

?? ?改 -U Update $m->save()?

?? ?查 -R Read?? $m->select()?

 通过?$m->getDbError(); 可以输出数据库的错误信息

读取数据

? ? 对数据的读取 Read

= Model('User'=M('User'<span style="color: #008000;">//<span style="color: #008000;">select
<span style="color: #800080;">$m
->select();<span style="color: #008000;">//
<span style="color: #008000;">获取所有数据,以数组形式返回

//find
<span style="color: #800080;">$m->find(<span style="color: #800080;">$id);<span style="color: #008000;">//<span style="color: #008000;">获取单条数据

//getField(字段名)//获取一个具体的字段值
<span style="color: #800080;">$arr=<span style="color: #800080;">$m->where('id=2')->getField('username');

? ? 对数据的添加 Create??

= Model('User'=M('User'字段名=值 -> 'name' = 'tim' = ->

删除数据

? ? 对数据的删除

=M('User' = ->delete(2);

<span style="color: #800080;">$ret = <span style="color: #800080;">$m->where('id=2')->delete(); <span style="color: #008000;">//<span style="color: #008000;">与上面效果相同,也是删除id为2的数据
//返回值$ret是受影响行数

更新数据

? ? 对数据的更新

=M('User'['id']=1['username']='ztz2' = ->save(

? ? a、字符串

=->where("sex=0 and username='gege'")->find();

? ? b、数组

['sex']=0['username']='gege'=->where()-><span style="color: #008000;">//<span style="color: #008000;">注意:这种方式默认是and的关系,如果使用or关系,需要添加数组值
<span style="color: #800080;">$data
['sex']=0<span style="color: #000000;">;
<span style="color: #800080;">$data
['username']='gege'<span style="color: #000000;">;
<span style="color: #800080;">$data
['_logic']='or';

2、表达式查询方式

['id']=('lt',6=->where()-><span style="color: #008000;">//<span style="color: #008000;">其他比较操作符
//EQ 等于
//NEQ不等于
//GT 大于
//EGT大于等于
//LT 小于
//ELT小于等于
//LIKE 模糊查询

<span style="color: #800080;">$data
['username']=<span style="color: #0000ff;">array
('like','%ge'<span style="color: #000000;">);

<span style="color: #008000;">//<span style="color: #008000;">NOTLIKE
<span style="color: #800080;">$data['username']=<span style="color: #0000ff;">array('notlike','%ge%'); <span style="color: #008000;">//<span style="color: #008000;">notlike中间没有空格

//注意:如果一个字段要匹配多个通配符
<span style="color: #800080;">$data['username']=<span style="color: #0000ff;">array('like',<span style="color: #0000ff;">array('%ge%','%2%','%五%'),'and');<span style="color: #008000;">//<span style="color: #008000;">如果没有第三个值,默认关系是or关系
<span style="color: #800080;">$arr=<span style="color: #800080;">$m->where(<span style="color: #800080;">$data)-><span style="color: #000000;">select();

<span style="color: #008000;">//<span style="color: #008000;">BETWEEN
<span style="color: #800080;">$data['id']=<span style="color: #0000ff;">array('between',<span style="color: #0000ff;">array(5,7<span style="color: #000000;">));
<span style="color: #008000;">//<span style="color: #008000;">SELECT * FROM tp_user WHERE ( (id BETWEEN 5 AND 7 ) )
<span style="color: #800080;">$data['id']=<span style="color: #0000ff;">array('not between',7));<span style="color: #008000;">//<span style="color: #008000;">注意,not 和 between中间一定要有空格

//IN
<span style="color: #800080;">$data['id']=<span style="color: #0000ff;">array('in',<span style="color: #0000ff;">array(4,6,7<span style="color: #000000;">));
<span style="color: #008000;">//<span style="color: #008000;">SELECT * FROM tp_user WHERE ( id IN (4,7) )

//NOT IN
<span style="color: #800080;">$data['id']=<span style="color: #0000ff;">array('not in',7<span style="color: #000000;">));
<span style="color: #008000;">//<span style="color: #008000;">SELECT * FROM tp_user WHERE ( id NOT IN (4,7) )

['id']=(('gt',4),('lt',10)); 4) AND (`id` < 10) )

<span style="color: #800080;">$data['id']=<span style="color: #0000ff;">array(<span style="color: #0000ff;">array('gt',10),'or') <span style="color: #008000;">//<span style="color: #008000;">关系就是or的关系
<span style="color: #800080;">$data['name']=<span style="color: #0000ff;">array(<span style="color: #0000ff;">array('like','%2%'),<span style="color: #0000ff;">array('like','gege','or');

avg sum

?? ?a、query 主要数处理读取数据的

? ? 成功返回数据的结果集,失败返回boolean false

==->query("select * from t_user where id >50"

?? ??? ?成功返回影响行数,失败返回boolean false

==->execute("insert into t_user(`username`) values('ztz3')");

?? ?1.where?帮助我们设置查询条件

?? ?2.order?对结果进行排序

=->order('id desc')->=->order(('id'=>'desc','sex'=>'asc'))->select();

limit(2,5'2,5'10)

field('username as name,id'('username'=>'name','id''id',)

?? ?6.group

?? ?7.having

? ? 8.other

alias page * union* distinct lock cache relation validate auto filter scope*

?a、display

??1.display中没有参数

->display();

->->display('index2'<span style="color: #800080;">$this-><span style="color: #000000;">display(其他文件夹下的模板文件);
<span style="color: #800080;">$this
->display('Public:error');<span style="color: #008000;">//<span style="color: #008000;">注意,仅仅需要在Tpl下有Public文件夹以及其中的error.html即可,不需要一定有Public模块

<span style="color: #800080;">$this->display(其他主题下的 文件夹下的 模板文件);<span style="color: #008000;">//<span style="color: #008000;">需要开启主题支持
<span style="color: #800080;">$this->display('my:Index:index'<span style="color: #000000;">);

<span style="color: #800080;">$this-><span style="color: #000000;">display(一个url路径);
<span style="color: #800080;">$this->display('./Public/error.html'<span style="color: #000000;">);
<span style="color: #800080;">$this->display('./Public/error.html','utf-8','text/xml'<span style="color: #000000;">);
<span style="color: #800080;">$this->show(<span style="color: #800080;">$content);

???获得模板文件中的内容,以字符串形式返回

=->fetch('Public:error');

???不需要模板文件,可以直接输出模板内容

=->fetch('Public:error'=('h1','i',->show();

->assign('name','赵桐正'<span style="color: #008000;">//<span style="color: #008000;">or
<span style="color: #800080;">$this->name='赵桐正2'<span style="color: #000000;">;

<span style="color: #800080;">$this->display();

__PUBLIC__:会被替换成当前网站的公共目录 通常是 /Public/

__ROOT__: 会替换成当前网站的地址(不含域名)?

__APP__: 会替换成当前项目的URL地址 (不含域名)

__GROUP__:会替换成当前分组的URL地址 (不含域名)

__URL__: 会替换成当前模块的URL地址(不含域名)

__ACTION__:会替换成当前操作的URL地址 (不含域名)

__SELF__: 会替换成当前的页面URL

更换模板变量规则,修改配置项:

'TMPL_PARSE_STRING'=>( '__CSS__'=>__ROOT__.'/Public/Css','__JS__'=>__ROOT__.'/Public/Js',,

??1.标量输出

??2.数组输出

{[1['k2'.k1}

{:->k}

{.get.id}

?

{|<span style="color: #008000;">//<span style="color: #008000;">生成的编译后文件是
<?php <span style="color: #0000ff;">echo (<span style="color: #008080;">strtoupper(<span style="color: #800080;">$name)); ?>

<span style="color: #008000;">//<span style="color: #008000;">如果值不是函数的第一个参数,可以用###占位
{<span style="color: #800080;">$name|<span style="color: #008080;">date='Y m d H:i:s',<span style="color: #008000;">#<span style="color: #008000;">##}

?

{|='这里是默认值'}

+ - * / % ++ -- {++}

导入CSS和JS文件 ? ? ??

?1、css link,?js src

<span style="color: #008000;">
<span style="color: #0000ff;"><<span style="color: #800000;">import <span style="color: #ff0000;">type<span style="color: #0000ff;">='js' <span style="color: #ff0000;">file<span style="color: #0000ff;">='Js.my' <span style="color: #ff0000;">basepath<span style="color: #0000ff;">='./Other'<span style="color: #0000ff;">/>

?1、if

<span style="color: #0000ff;"><<span style="color: #800000;">if <span style="color: #ff0000;">condition<span style="color: #0000ff;">='$age <span style="color: #ff0000;">lt 18'<span style="color: #0000ff;">><span style="color: #000000;">
未成年
<span style="color: #0000ff;"><<span style="color: #800000;">elseif <span style="color: #ff0000;">condition<span style="color: #0000ff;">='$age <span style="color: #ff0000;">eq 18'<span style="color: #0000ff;">/><span style="color: #000000;">
青春年少
<span style="color: #0000ff;"><<span style="color: #800000;">else <span style="color: #0000ff;">/><span style="color: #000000;">
成年
<span style="color: #0000ff;"></<span style="color: #800000;">if<span style="color: #0000ff;">>

? ? 常用的比较操作符有:

<span style="color: #008000;">//<span style="color: #008000;"><
<span style="color: #000000;">lt

<span style="color: #008000;">//<span style="color: #008000;">==
<span style="color: #000000;">eq

<span style="color: #008000;">//<span style="color: #008000;"><=
<span style="color: #000000;">elt

<span style="color: #008000;">//<span style="color: #008000;">>=
<span style="color: #000000;">egt

<span style="color: #008000;">//<span style="color: #008000;">!=
<span style="color: #000000;">neq

<span style="color: #008000;">//<span style="color: #008000;">===
<span style="color: #000000;">heq

<span style="color: #008000;">//<span style="color: #008000;">!==
nheq

?2、switch

< name='number'> < value='1'>一个和尚挑水吃> < value='2'>两个和尚台水吃> < value='3'>三个和尚没水吃> </>>

?1.for

<{$j}<abc

?1、比较标签

??in

在这些数字里面不在这些数字的范围内 在这些数字里面不在这些数字的范围内

{$n}在1-10之间{$n}不在1到10之间

??标签来判断模板变量是否已经赋值:

m有赋值m没有赋值

??empty标签判断模板变量是否为空:

n为空赋值n有值

??判断常量是否已经定义

?6.Define

??在模板中定义常量

?7.Assing

??模板中变量赋值

?8.在模板中直接使用PHP代码

"我是赵桐正"

模板包含?

<span style="color: #0000ff;"><<span style="color: #800000;">include <span style="color: #ff0000;">file<span style="color: #0000ff;">="header"<span style="color: #ff0000;"> title<span style="color: #0000ff;">="ThinkPHP框架"<span style="color: #ff0000;">keywords<span style="color: #0000ff;">="开源WEB开发框架"<span style="color: #0000ff;">/>
<span style="color: #008000;">

<span style="color: #0000ff;"><<span style="color: #800000;">include <span style="color: #ff0000;">file<span style="color: #0000ff;">='file1,file2' <span style="color: #0000ff;">/>

模板渲染?

?1、自动开启模板渲染 设置配置文件?

'LAYOUT_ON'=>,

???如果在摸一个具体模板中不希望使用渲染模板,可以在页首添加{__NOCONTENT__}

?2、不开启自动模板渲染可以在每一个具体页面的页首添加?

??在渲染模板文件中也可以使用其他模板文件的内容

这里是渲染页面!!!

空模块和空操作?

?1、空操作,在action文件中定义?

_empty(->show(" 不存在 返回首页"

?2.空模块

EmptyAction =M('City'=->->assign('list',=->display("City:"

前置操作和后置操作 ? ? ? ? ??

1、前置操作: _before_操作名2、后置操作: _after_操作名

URL规则

?? ?1、默认是区分大小写的?

? ??2、如果我们不想区分大小写可以改配置文件

'URL_CASE_INSENSITIVE'=>,

? ? 3、如果模块名为 UserGroupAction

?那么url找模块就必要要写成

http:

4、如果'URL_CASE_INSENSITIVE'=>false

?那么url也可以写为

http:

URL伪静态

'URL_HTML_SUFFIX'=>'html|shtml|xml',

URL路由

?1、启动路由

?要在配置文件中开启路由支持

?2、使用路由

?(1).规则表达式配置路由

'my'=>'Index/index', ':id/:num'=>'Index/index', 'year/:year/:month/:date'=>'Index/index', 'year/:yeard/:monthd/:dated'=>'Index/index', 'my/:id$'=>'Index/index',

?(2).正则表达式配置路由

'/^year/(d{4})/(d{2})/(d{2})/'=>'Index/index?year=:1&month=:2&date=:3'

?(3)、注意事项:

?1).越复杂的路由越往前面放

'URL_ROUTE_RULES'=>'my/:year/:month:/:day'=>'Index/day','my/:idd'=>'Index/index','my/:name'=>'Index/index',

2).可以使用$作为完全匹配的路由规则

'URL_ROUTE_RULES'=>'my/:idd$'=>'Index/index','my/:name$'=>'Index/index','my/:year/:month:/:day$'=>'Index/day',

3).用正则匹配的方式

'URL_ROUTE_RULES'=>'/^my/(d+)$/'=>'Index/index?id=:1','/^my/(w+)$/'=>'Index/index?name=:1','/^my/(d{4})/(d{2})/(d{2})$/'=>'Index/day?year=:1&month=:2&day=:3',

__ROOT__:网站根目录地址

__APP__: 当前应用(入口文件)地址

__MODULE__:当前模块的URL地址

__CONTROLLER__:当前控制器的URL地址

__ACTION__:当前操作的URL地址

__SELF__:当前URL地址

__INFO__:当前的PATH_INFO字符串

__EXT__:当前URL地址的扩展名

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读