zoukankan      html  css  js  c++  java
  • php学习日记4(关于php中的$this->assign(); 与 $this->display();)

    $this->assign(); 把数组打出来。

    $this->display('index.html');把打出来的数据放在index.html这个模板上

    Display用法:

    $this->display();

    就可以输出模板,根据前面的模板定义规则,因为系统会按照默认规则自动定位模板文件,所以通常display方法无需带任何参数即可输出对应的模板,这是模板输出的最简单的用法。
    事情总有特例,或者根本不需要按模块进行分目录存放,不过display方法总是能够帮你解决问题。


    Display方法提供了几种规则让你可以随心所欲的输出需要的模板,无论你的模板文件在什么位置。


    下面来看具体的用法:

    一、调用当前模块的其他操作模板


    格式:display('操作名')
    例如,假设当前操作是User模块下面的read操作,我们需要调用User模块的edit操作模版,使用:
    $this->display('edit'); 
    不需要写模板文件的路径和后缀。


    二、调用其他模块的操作模板


    格式:display('模块名:操作名')
    例如,当前是User模块,我们需要调用Member模块的read操作模版 ,使用:
    $this->display('Member:read'); 
    这种方式也不需要写模板文件的路径和后缀,严格来说,这里面的模块名和操作名并不一定需要有对应的模块或者操作,只是一个目录名称和文件名称而已,例如,你的项目里面可能根本没有Public模块,更没有Public模块的menu操作,但是一样可以使用
    $this->display('Public:menu'); 
    输出这个模板文件。理解了这个,模板输出就清晰了。

    三、调用其他主题的操作模板


    格式:display('主题名:模块名:操作名')
    例如我们需要 调用Xp主题的User模块的edit操作模版,使用:
    $this->display('Xp:User:edit'); 
    这种方式需要指定模块和操作名


    四、直接全路径输出模板


    格式:display('模板文件名')
    例如,我们直接输出当前的Public目录下面的menu.html模板文件,使用: 
    $this->display('./Public/menu.html');
    这种方式需要指定模板路径和后缀,这里的Public目录是位于当前项目入口文件位置下面。如果是其他的后缀文件,也支持直接输出,例如:
    $this->display('./Public/menu.tpl');
    只要./Public/menu.tpl是一个实际存在的模板文件。如果使用的是相对路径的话,要注意当前位置是相对于项目的入口文件,而不是模板目录。


    五、直接解析内容


    Action类的display方法如果传入第四个参数,表示不读取模板文件而是直接解析内容。例如:
    $this->assign('foo','ThinkPHP'); 
    $this->show('Hello, {$foo}!');

    会在页面输出: Hello,ThinkPHP! 
    直接输出的内容仍然支持模板布局功能。
    show方法也可以支持指定编码和输出格式,例如:
    $this->show($content, 'utf-8', 'text/xml'); 


    六、事实上,display方法还有其他的参数和用法。


    有时候某个模板页面我们需要输出指定的编码,而不是默认的编码,可以使用:
    $this->display('Member:read', 'gbk'); 


    或者输出的模板文件不是text/html格式的,而是XML格式的,可以用:
    $this->display('Member:read', 'utf-8', 'text/xml'); 


    如果你的网站输出编码不是默认的编码,可以使用:
    'DEFAULT_CHARSET'=> 'gbk' 


    如果要输出XML格式的,可以用:
    'TMPL_CONTENT_TYPE'=> 'text/xml' 

     

    Assign用法:

     

    thinkphp 在 Action 类里面使用 assign 方法对模板变量进行赋值;

    所以assign('row',$row)中第一个参数‘row’表示在模版取值用的变量名,第二个参数是row变量的值。

    示例如下:

    [html] view plain copy
     
     print?
      1. <?php  
      2. $wish='测试';  
      3. $this->assign('row',$row);  
      4. ?>  
      5. 模版取值示例:  
      6. <html>  
      7. <head>  
      8. <title>模版取值示例</title>  
      9. </head>  
      10. <body>  
      11.   
      12. <p><{$row}></p>  
      13.   
      14. </body>  
      15. </html>  
  • 相关阅读:
    希腊字母写法
    The ASP.NET MVC request processing line
    lambda aggregation
    UVA 10763 Foreign Exchange
    UVA 10624 Super Number
    UVA 10041 Vito's Family
    UVA 10340 All in All
    UVA 10026 Shoemaker's Problem
    HDU 3683 Gomoku
    UVA 11210 Chinese Mahjong
  • 原文地址:https://www.cnblogs.com/sun1512/p/7325163.html
Copyright © 2011-2022 走看看