ThinkPHP 3.2.3版本语法笔记

一、基本操作

1. 入口文件配置

define('APP_PATH','./目录名称/'),// 入口文件自定义应用程序目录,目录后面必须加'/'
define('BIND_CONTROLLER','控制器名称'),// 入口文件绑定默认访问控制器
define('BIND_ACTION', '动作名称'),// 入口文件绑定默认访问动作

2. 配置文件设置

'SHOW_PAGE_TRACE' => true,// 开启Trace调试工具
'TMPL_L_DELIM' => '{ ',// 模板标签开始标记
'LAYOUT_ON' => true,// 模版布局的功能
'LAYOUT_NAME' => 'layout',// 模版布局基础页的名字
'URL_HTML_SUFFIX' => 'html',// 伪静态后缀,默认为html
'URL_CASE_INSENSITIVE' => true,// 忽略大小写

'DB_TYPE' => 'mysql',// mysql数据库类型
'DB_HOST' => 'localhost',	// 数据库的域名
'DB_USER' => 'root',// 用户名
'DB_PWD' => '123456',	// 密码
'DB_NAME' => 'ThinkPHP',// 数据库名称
'DB_PREFIX' => 'prefix_',// 表的前缀

3. 方法前置、后置

前置方法:public function _before_index();
正常方法:public function _index();
后置方法:public function _after_index();

二、数据库操作

1. 筛选条件

$map['_logic'] = 'OR';// 设置逻辑关系,默认逻辑关系为AND。

2. 条件表达式

$map['id'] = array('eq',1);// where `id` = 1
$map['id'] = array('neq',1);// where `id` <> 1
$map['id'] = array('gt',1);// where `id` > 1
$map['id'] = array('egt',1);// where `id` >= 1
$map['id'] = array('lt',1);// where `id` < 1
$map['id'] = array('elt',1);// where `id` <= 1
$map['id'] = array('like','%1%');// where `id` like '%1%'
$map['id'] = array('notlike','%1%');// where `id` not like '%1%'
$map['id'] = array('between','1,3');// where `id` between 1 and 3
$map['id'] = array('not between','1,3');//where `id` not between 1 and 3
$map['id'] = array('in','1,2,3');// where `id` in ('1','2','3')
$map['id'] = array('not in','1,2,3');// where `id` not in ('1','2','3')

三、模版操作

1. 变量使用

{$Think.request.id}// $_REQUEST['id'];
{$Think.cookie.id}// $_COOKIE['id'];
{$Think.server.script_name}// $_SERVER['SCRIPT_NAME'];
{$Think.session.id} // $_SESSION['id'];
{$Think.post.id}// $_POST['id'];
{$Think.get.id}// $_GET['id'];

2. 函数的使用:

{$Data|md5}// md5($Data);
{:md5($Data)}// md5($Data);
{$Date|date="Y-m-d H:i:s",###}// date('Y-m-d H-i-s',$Date);
{$Data|md5|sha1}// sha1(md5($Data));(多个函数,从左至右)
{$Data|default="没有数据"}//当没有获取到数据的时候,会输出default中的值。

3. 运算符的使用:

{$Num + 10}// $Num+10;
{$Num + func())}// $Num+func();
{$Arr['num'] + 10}// $Arr['num']+10;  注意:{$Arr.num+10}是错误的。
{$Num ? 'true' : 'false'}//$Num ? '三元' : '运算符';

4. 模版布局

  • 开启模版布局,在模板页layout.html中使用 {__CONTENT__}
  • 关闭模板布局,在子页中使用{__NOLAYOUT__}

5. 模版常量

__ROOT__ // 会替换成当前网站的URL地址,不包含域名。
__APP__	// 会替换成当前应用的URL地址,不包含域名。
__MODULE__ // 会替换成当前模块的URL地址,不包含域名。
__CONTROLLER__ // 会替换成当前控制器的URL地址,不包含域名。
__ACTION__ // 会替换成当前操作的URL地址,不包含域名。
__SELF__ // 会替换成当前页面的URL地址,不包含域名。
__PUBLIC__ // 会替换成当前网站的公共目录。
__UPLOAD__ // 会替换成当前网站的上传目录。

6. 内置标签

  • **if、else判断比较 **
    在condition属性中是可以使用PHP语法
<if condition="$Name eq '张三'">
	//如果$Name = '张三' 将会输出
<else/>
	//如果$Name != '张三' 将会输出
</if>
  • eq、neq、gt、egt、lt、elt判断比较
    在name、value属性中是可以使用点语法(数组或对象操作)
<eq name='Name' value='张三'>
	//如果$Name = '张三' 将会输出
</eq>
  • empty判断
    在name属性中是可以使用点语法(数组或对象操作)
<empty name="Name">
	// $Name为空值
</empty>
  • switch判断
    在name属性中是可以使用点语法(数组或对象操作)
<switch name='Name'>
	<case value='张三'>满足$Name == '张三'</case>
	<case value='李四'>满足$Name == '李四'</case>
	<default />不满足以上选项
</switch>
  • volist循环遍历
    在name属性中是可以使用点语法(数组或对象操作)
<volist name='Data' id='Arr' key='K'>
	{$Arr.id} - {$Arr.name} - {$Arr.age}
</volist>
  • 其他标签
  1. 声明变量 <assign name='Name' value='张三'/> //{$Name}
posted @ 2018-10-16 16:48  Alpha丶Ra1nb0w  阅读(453)  评论(0)    收藏  举报