www.weide1946.comThinkPHP模版引擎之变量输出详解,

2019-06-22 19:15 来源:未知

关门DEBUG情势后,模板渲染失败的难点(如若Action方法名有大写,display需将完整名称传入) 

景逸SUV方法用于调用某些调整器的操作方法,是A方法的更为进步和增补。关于A方法的用法见这里。
中华V方法的调用格式:
R('[项目://][分组/]模块/操作','参数','调控器层名称')
例如,大家定义了多少个操作方法为:

正文实例深入分析了ThinkPHP模版引擎中变量输出的用法。分享给大家供大家参谋。具体剖析如下:

不能够留空 留空的话自动得到Action名称转换到小写

  1. class UserAction extends Action {
  2. public function detail($id){
  3. return M('User')->find($id);
  4. }
  5. }

我们早已领悟了在Action中动用assign方法能够给模板变量赋值,赋值后怎么在模板文件中输出变量的值吗?

www.weide1946.com 1

复制代码

举个例子大家在Action中赋值了三个name模板变量:


那就是说就能够通过QX56方法在任何调控器里面调用这么些操作方法(一般酷路泽方法用于跨模块调用)

复制代码 代码如下:

  1. $data = R('User/detail',array('5'));

$name = 'ThinkPHP';
$this->assign('name',$name);

复制代码

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

代表调用User调整器的detail方法(detail方法必须是public类型),重回值正是询问id为5的三个用户数量。假若你要调用的操作方法是绝非任何参数的话,第一个参数则可以留空,直接选拔:

模板编写翻译后的结果就是

  1. $data = R('User/detail');

复制代码 代码如下:

复制代码

<?php echo($name);?>

也足以支撑跨分组和品种调用,譬如:

最后运转的时候就能够在标签地点显得ThinkPHP的出口结果,注意模板标签的{和$之间无法有别的的空格,不然标签无效。普通标签私下认可初步标志是 {,结束标识是 },也足以透过安装TMPL_L_DELIM和TMPL_R_www.weide1946.com ,DELIM实行转移,举个例子,大家在品种布局文件中定义:

  1. R('Admin/User/detail',array('5'));

复制代码 代码如下:

复制代码

'TMPL_L_DELIM'=>'<{', 
'TMPL_R_DELIM'=>'}>',

表示调用Admin分组上边包车型大巴User调整器的detail方法。

那正是说,上边的变量输出标签就应当改成:

  1. R('Admin://User/detail',array('5'));

<{$name}>

复制代码

前面包车型地铁原委大家都是暗中认可的标签定义来证实,assign方法里面包车型大巴率先个参数才是模板文件中动用的变量名称,假诺改成上边包车型客车代码:

意味着调用Admin项目下边包车型客车User调控器的detail方法。
合法的建议是毫不在同样层多太多调用,会挑起逻辑的头晕目眩,被集体调用的部分应该封装成单独的接口,能够依赖3.1的新特点多层调节器,单独加多贰个操纵器层用于接口调用,举例,我们扩大叁个Api调整器层,

复制代码 代码如下:

  1. class UserApi extends Action {
  2. public function detail($id){
  3. return M('User')->find($id);
  4. }
  5. }

$name = 'ThinkPHP';
$this->assign('name2',$name);

复制代码

再利用{$name} 输出就没用了,必须运用 {$name2}才具出口模板变量的值了.假使大家供给把二个用户数量对象赋值给模板变量:

下一场,使用牧马人方法调用

复制代码 代码如下:

  1. $data = R('User/detail',array('5'),'Api');

$User = M('name');
$user = $User->find(1);
$this->assign('user',$user);

复制代码

也正是说$user其实是贰个数组变量,大家得以应用上边包车型大巴办法来输出相关的值:

也正是说,牧马人方法的第八个参数帮助钦命调用的主宰器层。
并且,Murano方法调用操作方法的时候能够协理操作后缀设置C('ACTION_SUFFIX'),假若你设置了操作方法后缀,仍旧无需退换途观方法的调用方式。

复制代码 代码如下:

{$user['name']}//输出用户的名目
{$user['email']} //输出用户的email地址

如果$user是二个指标而不是数组的话.

复制代码 代码如下:

$User = M('name');
$User->find(1);
$this->assign('user',$User);

可以利用上面包车型大巴主意出口相关的属性值:

复制代码 代码如下:

{$user:name}// 输出用户的名号
{$user:email} // 输出用户的email地址

3.1本子之后,类的属性输出方式有着调度,帮忙原生的PHP对象写法,所以地点的价签需求改成:

复制代码 代码如下:

{$user->name}// 输出用户的名号
{$user->email} // 输出用户的email地址

为了有利于模板定义,还是能够扶助点语法,比如,上边的 

复制代码 代码如下:

{$user['name']}// 输出用户的名称
{$user['email']} // 输出用户的email地址

能够改成

复制代码 代码如下:

{$user.name}
{$user.email}

因为点语法暗中同意的出口是数组形式,所以地方三种艺术是在平素不配备的动静下是均等的,大家得以因而陈设TMPL_VAR_IDENTIFY参数来调控点语法的输出效果,以下边包车型大巴出口为例:{$user.name}

如果TMPL_VAR_IDENTIFY设置为array,那么

{$user.name}和{$user['name']}等效,也等于出口数组变量.

如果TMPL_VAR_IDENTIFY设置为obj,那么

{$user.name}和{$user:name}等效,也正是出口对象的性质。

如果TMPL_VAR_IDENTIFY留空的话,系统会活动推断要出口的变量是数组仍旧对象,这种方法会一定程度上海电影制片厂响效能,而且只扶助二维数组和两级对象属性。

若果是多维数组大概多层对象属性的出口,可以选取上边的定义形式:

复制代码 代码如下:

{$user.sub.name}//使用点语法输出

依旧利用

复制代码 代码如下:

{$user['sub']['name']}// 输出三维数组的值 
{$user:sub:name}// 输出对象的体系属性

期待本文所述对我们基于ThinkPHP框架的PHP程序设计有着补助。

你只怕感兴趣的稿子:

  • thinkPHP框架中奉行原生SQL语句的章程
  • thinkphp中多表查询中防卫数据重复的sql语句(一定要看)
  • 消除ThinkPHP关闭调节和测试方式时报错的难题汇总
  • ThinkPHP调节和测试情势与日志记录概述
  • 分析选取ThinkPHP应该了然的调度花招
  • thinkphp中常用的系统常量和系统变量
  • thinkPHP5.0框架碰着变量配置形式
  • 深入分析thinkphp import 文件内容变量失效的标题
  • thinkPHP调节器变量在模板中的呈现形式言传身教
  • ThinkPHP框架获取最终二遍施行SQL语句及变量调节和测试轻易操作示例
版权声明:本文由韦德娱乐1946_韦德娱乐1946网页版|韦德国际1946官网发布于网络编程,转载请注明出处:www.weide1946.comThinkPHP模版引擎之变量输出详解,