代码改变世界

TP开发经验3

2011-06-07 14:37  卫佳  阅读(204)  评论(0编辑  收藏  举报

模板:

$this->assign('name',$value); //在 Action 类里面使用 assign 方法对模板变量赋值,无论何种变量类型都统一使用 assign 赋值

$this->display() // 输出模版文件

批量赋值
$array['name'] = 'thinkphp'
$array['email'] = 'liu21st@gmail.com'
$array['phone'] = '12335678'
$this->assign($array)


$this->display() // 调用 User 模块的 read 操作模版WenZhou Sunglasses
$this->display('edit') // 调用 User 模块的 edit 操作模版
$this->display('Member:read') // 调用 Member 模块的 read 操作模版
$this->display('Xp@User:edit') // 调用 Xp 主题的 User 模块的 edit 操作模版
$this->display('../Member/read.html') // 直接指定模版文件的全名

模板标签:

{ } 或 {// 注释内容 } //模板注释
{$user['name']} //输出数组变量
{$user:name} //输出对象的属性

为了方便模板定义,无论输出的模板变量是数组还是对象,都可以用下列统一方式输出:
{$user.name}
如果是多维数组或者多层对象属性的输出,请使用下面的定义方式:
{$user['sub']['name']}
{$user:sub:name}

使用函数:
格式:{$varname|function1|function2=arg1,arg2,### }
说明:
{ 和 $ 符号之间不能有空格 ,后面参数的空格就没有问题
###表示模板变量本身的参数位置

系统变量
{$Think.server.script_name } //取得$_SERVER 变量
{$Think.session.session_id|md5 } // 获取$_SESSION 变量
{$Think.get.pageNumber } //获取$_GET 变量
{$Think.cookie.name } //获取$_COOKIE 变量
系统常量
{$Think.const.__FILE__ }
{$Think.const.MODULE_NAME }
特殊变量 ,由 ThinkPHP 系统定义的常量
{$Think.version } //版本
{$Think.now } //现在时间

快捷输出
{:function(…)} //执行方法并输出返回值
{~function} //执行方法不输出
{@var} //输出 Session 变量
{&var} //输出配置参数
{%var} //输出语言变量
{.var} //输出 GET 变量
{^var} //输出 POST 变量
{*var} //输出常量

包含外部文件
<include file="$tplName" /> // 用变量控制要导入的模版
<include file="../Public/header.html" /> // 使用一个完整的文件名包含

循环输出Reading Glasses with Case
iterate 还有其它的别名,包括 volist,resultset,sublist

模版赋值:
$User = D('User')
$list = $User->findAll()
$this->assign('list',$list)

模版定义:
<iterate name="list" id="vo">
{$vo.name}
</iterate>

注意 name 和 id 表示的含义
// 输出 list 的第 5~15 条记录
<iterate name="list" id="vo" offset="5" length='10'>
{$vo.name}
</iterate>

// 输出偶数记录
<iterate name="list" id="vo" mod="2" >
<eq name="mod" value="1">
{$vo.name}
</eq>
</iterate>

// 输出 key
<iterate name="list" id="vo" key="k" >
{$k}.{$vo.name}
</iterate>

//子循环输出
<volist name="list" id="vo">
<sublist name="vo['sub']" id="sub">
{$sub.name}
</sublist>
</volist>

Switch 标签
<switch name="name">
<case value="1">value1</case>
<case value="2">value2</case>
<default />default
</switch>
其中 name 属性可以使用函数以及系统变量,例如:
<switch name="Think.get.userId|abs">
<case value="1">admin</case>
<default />default
</switch>
也可以对 case 的 value 属性使用变量,例如:
<switch name="userId">
<case value="$adminId">admin</case>
<case value="$memberId">member</case>
<default />default
</switch>

比较标签
<eq name="name" value="value">value</eq> // name 变量的值等于 value 就输出
<neq name="name" value="value">value</neq> // name 变量的值不等于 value 就输出
<gt name="name" value="5">value</gt> // name 变量的值大于 5 就输出
<egt name="name" value="5">value</egt> // name 变量的值大于等于 5 就输出
<lt name="name" value="5">value</lt> // name 变量的值小于 5 就输出
<elt name="name" value="5">value</elt> // name 变量的值小于等于 5 就输出


//其实上面的所有标签都是 compare 标签的别名
// 其中 type 属性的值就是上面列出的判断标签名称
<compare name="name" value="5" type="eq">value</compare> // name 变量的值等于 5 就输出

If标签
<if condition="$name eq 1 "> value1
<elseif condition="$name eq 2" />value2
<else /> value3
</if>