thinkphp笔记三.docx
- 文档编号:15160702
- 上传时间:2023-07-01
- 格式:DOCX
- 页数:18
- 大小:267.06KB
thinkphp笔记三.docx
《thinkphp笔记三.docx》由会员分享,可在线阅读,更多相关《thinkphp笔记三.docx(18页珍藏版)》请在冰点文库上搜索。
thinkphp笔记三
一、视图
视图分为两部分:
1)view类
2)模板文件
1、模板定义
●默认的模板文件定义规则:
模板目录/[分组名/]模块名/操作名+模板后缀
模板中的后缀由配置文件中的TMPL_TEMPLATE_SUFFIX选项来决定,可以自己修改
.html
.tpl
.htpl
2、分隔符
●'TMPL_L_DELIM'=>'<{',
●'TMPL_R_DELIM'=>'}>',
3、模板赋值
●$this->assign(“name”,$value);
$array['name'] =‘zhangsan';
$array['email'] =‘zs@';
$array['phone'] =‘12345678';
$this->assign($array);
4、模板输出
●$this->display();
display(‘操作名')
display(‘模块名:
操作名')
display(‘show’,‘utf-8',‘text/xml');
5、模板替换
●__PUBLIC__:
当前网站的公共目录
●__APP__:
当前项目的URL地址
●__GROUP__:
当前分组的URL地址
●__URL__:
当前模块的URL地址
●__ACTION__:
当前操作的URL地址
●TMPL_PARSE_STRING:
选项
在tp中的模板中,有这样几个模板常量,它们表示不同含义,那么,在对url获取时可以用到
如果我们想引用一个外部文件,可以使用如:
__PUBLIC__
接下来,我们给页面添加一个css文件
但是,在引用时,我们发现__PUBLIC__表示的是网站的根目录
如:
http:
//localhost/Produc/index.php/admin/student/index
__PUBLIC__是表示http:
//localhost这个目录,这个问题解决?
解决之道:
1)配置虚拟主机
配置host文件
开启虚拟主机文件
配置虚拟主机
重启apache
使用以下url:
现在__PUBLIC__指的是的根下的Public文件夹
2)修改配置文件
6、获取内容
$this->fetch();
二、模板
1、模板注释
●{/*注释内容*/}
●{//注释内容}
模板的注释不会输出到客户端
2、变量输出
1)普通变量
2)数组变量
3)对象变量
Php代码:
Html代码:
3、系统变量
●$Think.server$_SERVER
●$Think.get$_GET
●$Think.post$_POST
●$Think.request$_REQUEST
●$Think.cookie$_COOKIE
●$Think.session$_SESSION
●$Think.config取得配置文件中的数据
合理的使用以上内置变量,可以减少控制器向模板传值的代码:
4、使用函数
●格式
{$name|fn1|fn2=arg1,arg2,###}
5、默认值
{$变量|default="默认值"}
6、运算符
●+{$a+$b}
●-{$ab}
●*{$a*$b}
●/{$a/$b}
●%{$a%$b}
●++{$a++}或 {++$a}
●--{$a--} 或{--$a}
7、内置标签
1)闭合标签
2)开放标签
8、包含文件
在一些网站中,有些部分是公共的,我们把这些公共的部分放在一个网页中,便于其它网页引用,这时,我们使用include标签
●格式:
是基于项目的入口文件位置。
./Tpl/Admin/Public/header.html
传递参数title
[title]
这样引入文件,路径过长,不方便,怎么解决?
操作名” title="Think”/> 9、导入文件 导入资源文件js、css ●格式: 用于引入js文件 用于引入css文件 用于引用入js或css文件 ●格式: file(必须): 资源文件 type(可选): 资源文件类型,默认为js 起始路径是网站的Public(__PUBLIC__)目录 采用命名空间方式 10、volist标签 用于遍历数组 {$vo.id} {$vo.name} ●name(必须): 要遍历的数组变量 ●id(必须): 当前数组元素 ●offset: 要输出数据的偏移量、从0开始计算 ●length: 输出数据的长度,需要指定offset ●key: 循环索引从1开始计算,默认值是i 11、foreach标签 用于遍历数组 {$vo.id} {$vo.name} Name: 要遍历的数组名称 Item: 将遍历到的元素保存到指定的变量中 12、for标签 {$i} 属性: ●start(必须): 循环变量开始值 ●end(必须): 循环变量结束值-1 ●name(可选): 循环变量名,默认值为i ●step(可选): 步进值,默认值为1 13、switch标签 输出内容1 14、EMPTY标签 15、assign标签 ● Name: 变量名 Value: 变量值 16、if标签 ●if ●elseif ●else ●格式: value1 value2 value3 ●eq或者equal: 等于 ●neq或者notequal: 不等于 ●gt: 大于 ●egt: 大于等于 ●lt: 小于 ●elt: 小于等于 ●heq: 恒等于 ●nheq: 不恒等于 17、使用php代码 在tp中,模里面里允许写php代码 共有两种形式: phpecho“think”;? > 建议少用 TMPL_DENY_PHP: 在配置文件中设置此选项为true,可以禁止第二种形式 'TMPL_DENY_PHP'=>true, 三、实用项 1、session应用 登录、用户身份信息保存、购物车 在tp中,sesson机制是默认开启的 如果你的项目中没有用到session,那么我们需要在配置文件中将session关闭 在配置文件中,有一个选项 SESSION_AUTO_START 将它设置为false,表示关闭session自动启动 ●session('name','value'); 创建session、并且赋值 ●$value=session('name');取得session数据 ●session('name',null);删除指定的session ●session(null);删除所有session ●session('? name');判断某个session是否存在布尔型 2、cookie ●cookie('name','value'); ●cookie('name','value',3600); ●$value=cookie('name'); ●cookie('name',null); ●cookie(null); 3、验证码 定义生成验证码的方法: 在html中,使用img标签进行引用 如何进行验证? Image类创建的验证码的值会保存到session中,默认名称是verify,但是这个值是经过MD5加密之后,所以,我们要把用户输入的验证码进行加密,再进行比较。 代码如下: 4、数据分页 ●$User = M(“User”); ●$count =$User->count(); ●$Page =newPage($count,25); ●$show =$Page->show(); ●$list=$User->limit($Page-firstRow.','.$Page->listRows)->select(); ●$this->assign('list',$list); ● $this->assign('page',$show); ●$this->display(); 在page类中,有一个方法叫setConfig, ●header ●Prev ●next ●first ●last ●$page->setConfig('header','个会员'); 模板代码: 5、多表连接 类别表 Id分类名 商品表 Id分类id商品名商品价格 1、 Select*from表1,表2where表1.id=表2.sid 2、 Leftjoin、rightjoin 在tp中,实现表连接有两种方法: 1)table: 主要实现第一种表连接 2)join: 主要实现第二种表连接 3、table连接 ●$model->table(‘table1t1,tablet2’) ->where(‘t1.id=t2.sid’) ->select(); 查询每种商品名称、编号和所属分类 4、join连接 ●$model->join(‘t2ont1.sid=t2.id’) ->select(); leftjoin: 左连接默认 rightjoin: 右连接 6、Ajax应用 ●Action类提供了ajaxReturn方法用于AJAX调用后返回数据给客户端 ●通过配置DEFAULT_AJAX_RETURN进行设置,默认配置采用JSON格式返回数据
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- thinkphp 笔记