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>
- 其他标签
- 声明变量
<assign name='Name' value='张三'/> //{$Name}

浙公网安备 33010602011771号