ThinkPHP模板变量输出格式

    本文简单介绍了ThinkPHP模版引擎中变量输出的格式用法,供大家参考。具体分析如下:

我们已经知道了在Action中使用assign方法可以给模板变量赋值,

例如:

$result = M()->table('student')->find();

this->assign('result',$result);

这里为了方便一般将assign里面的两个参数设为一样的,当然也可以自由定义为不同值;  

    赋值后怎么在模板文件中输出变量的值呢?

使用内置的模板引擎输出变量,只需要在模版文件使用:
{$result}

模板编译后的实际代码就是

<?php echo($result);?>

注意模板标签的{和$之间不能有任何的空格,否则标签无效。普通标签默认开始标记是 {,结束标记是 },也可以通过设置TMPL_L_DELIM和TMPL_R_DELIM进行更改,例如,我们在项目配置文件中定义:

'TMPL_L_DELIM'=>'<{',  

'TMPL_R_DELIM'=>'}>',
那么,上面的变量输出标签就应该改成:

<{$result}>

如果我们需要把一个用户数据对象赋值给模板变量:

例如:

$result = M('student');
$result = $result->find(1);
$this->assign('result',$result);
也就是说$user其实是一个数组变量,我们可以使用下面的方式来输出相关的值:
{$result['name']}//输出学生的名称
{$result['score']} //输出学生的分数

如果$user是一个对象而不是数组的话.

例如:

$result = M('student');
$result->find(1);
$this->assign('result',$result);

可以使用下面的方式输出相关的属性值:
{$result:name}// 输出学生的名称
{$result:score} // 输出学生的分数

3.1版本以后,类的属性输出方式有所调整,支持原生的PHP对象写法,所以上面的标签需要改成:
{$result->name}// 输出学生的名称
{$result->score} // 输出学生的分数

为了方便模板定义,还可以支持点语法,例如,上面的  
{$result['name']}// 输出学生的名称
{$result['score']} // 输出学生的分数

可以改成
{$result.name}
{$result.score}

当变量是多个表格中多条结果时;

例如:

$result=M()->table('student')->order('score desc')->select();

变量输出时我们可以这样写:

{$resut.0.score}

这样我们就能得到第一条结果的score值;

? 这里留下一个问题,如果不指定结果中取值对象,会返回一个Array!

例如:直接输出{$result}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值