Heim Backend-Entwicklung PHP-Tutorial ThinkPHP框架之视图_PHP教程

ThinkPHP框架之视图_PHP教程

Jul 14, 2016 am 10:12 AM
smarty thinkphp view eins bilden 框架 模块 模板 von 组件 视图 项目

一、视图

 

1、 视图组件的构成:

 

1) 视图类

 

View类

Smarty类

 

2) 模板

 

Tpl/项目/模块/***.html

 

视图类负责读取模板内容,并实现字符串替换,最终再输出给用户

 

2、 模板定义

 

默认的模板文件定义规则:

 

模板目录/[分组名/]模块名/操作名+模板后缀

 

TMPL_TEMPLATE_SUFFIX

 

一般情况下,模板的后缀大体使用以下几种:

 

.html

.htpl

.tpl

 

3、 分隔符

 

因为每个模板设计者的习惯不同,有的人习惯使用“{}” 有的人使用   {**}

 

在配置文件中,可以设置以下两个配置选项,表示配置模板的分隔符

 

 'TMPL_L_DELIM'=>'

 'TMPL_R_DELIM'=>'}>',

 


 

4、 模板赋值以及输出

 

1)    $this->assign(‘模板变量名’,变量);

         $var = '手机';
       
        $this->assign('var',$var);
       
        $this->display('test');


2)    $this->assign(数组变量);

     

 
   

   

        $var = '手机';
       
        $this->assign('var',$var);
       
        $arr['price'] = 33.3;
        $arr['address'] = '北京';
        $this->assign($arr);
        $this->display('test');
    }

 

 

3)$this->display(‘操作名’)

       当前模块下的指定操作名.html模板

4)$this->display(‘模块:操作名’); //模板是可以跨模块调用的


       引用指定模块下的指定的操作名.html模板

5)$this->display(‘操作’,’输出编码’,’输出类型’);

 


       //跨模块输出
        $this->display('User:login','utf-8','text/html');

 

 

 

5、 模板替换(模板常量)

 在项目中经常要引用css、js、图片的资源需要引用。


__PUBLIC__:当前网站的公共目录

__APP__: 当前项目的URL地址

 __GROUP__:当前分组的URL地址

__URL__:当前模块的URL地址

__ACTION__:当前操作的URL地址

 

在tp中的模板里,可以使用以上模板常量,它们表示不同的字符串,一般在需要引用url时,可以用到以上常量

 

默认来讲:如果我们访问:

 

Localost/index.php/home/product/test,这时模板如使用了__PUBLIC__模板常量,那么它的值指向了apache的htdocs目录下,但是如果我们有多项目,这时会有冲突,如何解决?

 

解决之道:

 

1) 修改配置文件

 

在配置文件中,可以配置一个叫TMPL_PARSE_STRING选项,它可以定义在模板使用的模板常的值

 


 

然后,在模板中,可以这样来引用当前项目下的资源文件:

 


 

2) 配置虚拟主机

 

打开host文件:


打开httpd.conf

 

 


 

将上面的配置选项之前的#去掉

 

打开httpd-vhosts.conf文件,添加新的虚拟主机设置

 


 

重启apache

 

Localhost---àapache/htdocs/

 

Tp.com-----àapache/htdocs/tp/

 

6、 获取内容

 

$this->fetch();

 


 

Display:读取模板、替换内容、输出

Fetch:读取模板、替换内容、返回字符串(主要用于生成静态页)

 

 

二、模板

 

1、 模板注释:

 

l  {/* 注释内容 */ }

 

l  {// 注释内容 }

 

Tp中的模板注释主要是给模板设计者或程序设计者来看的

 

2、 变量输出:

 

程序向模板中赋值

 

普通变量

       $name

数组变量

       $row

对象变量

       $obj

 

代码示例:

 

Php程序:

 


 

模板程序:

 


 

 

 

 

 

 

 

3、 系统变量   (模板中的系统变量)

 

l  $Think.server        $_SERVER

l  $Think.get               $_GET

l  $Think.post             $_POST

l  $Think.request         $_REQUEST

l  $Think.cookie          $_COOKIE

l  $Think.session         $_SESSION

l  $Think.config          读取配置文件      

 

 


 

4、 使用函数

 

l  格式

 

       {$name|fn1|fn2=arg1,arg2,###}

 


 

5、 默认值

 

{$变量|default="默认值"}

 


 

6、 运算符

 

l  +              {$a+$b}

l  -        {$ab}

l  *              {$a*$b}

l  /        {$a/$b}

l  %             {$a%$b}

l  ++            {$a++} 或  {++$a}

l  --              {$a--}  或 {--$a}

 


 

7、 内置标签

 

l  闭合标签


l  开放标签

 

8、 包含文件

 

 

是基于项目的入口文件位置。

 

./Tpl/Admin/Public/header.html

 

我们将网页公共部分放到header.html和footer.html两个公共模板页中,在主页中使用include进行引用

 


 

 

 

上面在引用文件时,路径过长,如何解决?

 

 

l  格式:

      

 

       file(必须):资源文件

       type(可选):资源文件类型,默认为js

 

       起始路径是网站的Public(__PUBLIC__)目录

       采用命名空间方式

       目录.目录.文件名

 


 

10、             volist标签

 

用于遍历数组元素

 

l  格式:

 

      

              {$vo.id}

              {$vo.name}

      

 

l  name(必须):要遍历的数组变量

l  id(必须):当前数组元素

l  offset:     要输出数据的offset

l  length:    输出数据的长度,需要指定offset

l  key: 循环索引   key的值默认为 i

 


 

 

11、             foreach标签

 

用于遍历数组变量

 

语法:

              {$vo.id}

              {$vo.name}

 

Name :要遍历的数组变量

Item:用于保存当前元素的变量名

 

如果有特殊需求,使用volist,否则使用foreach

 


12、             for标签

 

              {$i}

 

属性:

l  start(必须):循环变量开始值

l  end(必须):循环变量结束值 (不包括)

l  name(可选):循环变量名,默认值为i

l  step(可选):步进值,默认值为1

 


 

13、             switch标签

 

l  格式:

              输出内容1

输出内容2

默认情况

 


 

14、             empty标签

 

name为空值

 

15、             assign标签

 

16、             if标签

 

l  if

l  elseif

l  else

 


 

判断时,需要使用以下连接符

 

l  eq或者 equal:等于

l  neq 或者notequal:不等于

l  gt:大于

l  egt:大于等于

l  lt:小于

l  elt:小于等于

l  heq:恒等于

l  nheq:不恒等于

 

17、             使用php代码

 

1)echo “hello”;

2)


 

在配置文件中,有一个选项可以控制第二种方法是否可用


TMPL_DENY_PHP 可以禁用第二种方法

 

建议:尽量少在模板中使用php代码


 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/477228.htmlTechArticle一、视图 1、 视图组件的构成: 1) 视图类 View类 Smarty类 2) 模板 Tpl/项目/模块/***.html 视图类负责读取模板内容,并实现字符串替换,最终...
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So bewerten Sie die Kosteneffizienz der kommerziellen Unterstützung für Java-Frameworks So bewerten Sie die Kosteneffizienz der kommerziellen Unterstützung für Java-Frameworks Jun 05, 2024 pm 05:25 PM

Die Bewertung des Kosten-/Leistungsverhältnisses des kommerziellen Supports für ein Java-Framework umfasst die folgenden Schritte: Bestimmen Sie das erforderliche Maß an Sicherheit und Service-Level-Agreement-Garantien (SLA). Die Erfahrung und das Fachwissen des Forschungsunterstützungsteams. Erwägen Sie zusätzliche Services wie Upgrades, Fehlerbehebung und Leistungsoptimierung. Wägen Sie die Kosten für die Geschäftsunterstützung gegen Risikominderung und Effizienzsteigerung ab.

Wie ist die Lernkurve von PHP-Frameworks im Vergleich zu anderen Sprach-Frameworks? Wie ist die Lernkurve von PHP-Frameworks im Vergleich zu anderen Sprach-Frameworks? Jun 06, 2024 pm 12:41 PM

Die Lernkurve eines PHP-Frameworks hängt von Sprachkenntnissen, Framework-Komplexität, Dokumentationsqualität und Community-Unterstützung ab. Die Lernkurve von PHP-Frameworks ist im Vergleich zu Python-Frameworks höher und im Vergleich zu Ruby-Frameworks niedriger. Im Vergleich zu Java-Frameworks haben PHP-Frameworks eine moderate Lernkurve, aber eine kürzere Einstiegszeit.

Wie wirken sich die Lightweight-Optionen von PHP-Frameworks auf die Anwendungsleistung aus? Wie wirken sich die Lightweight-Optionen von PHP-Frameworks auf die Anwendungsleistung aus? Jun 06, 2024 am 10:53 AM

Das leichte PHP-Framework verbessert die Anwendungsleistung durch geringe Größe und geringen Ressourcenverbrauch. Zu seinen Merkmalen gehören: geringe Größe, schneller Start, geringer Speicherverbrauch, verbesserte Reaktionsgeschwindigkeit und Durchsatz sowie reduzierter Ressourcenverbrauch. Praktischer Fall: SlimFramework erstellt eine REST-API, nur 500 KB, hohe Reaktionsfähigkeit und hoher Durchsatz

Was sind die häufigsten Anwendungen von C++-Vorlagen in der tatsächlichen Entwicklung? Was sind die häufigsten Anwendungen von C++-Vorlagen in der tatsächlichen Entwicklung? Jun 05, 2024 pm 05:09 PM

C++-Vorlagen werden in der tatsächlichen Entwicklung häufig verwendet, einschließlich Containerklassenvorlagen, Algorithmusvorlagen, generischen Funktionsvorlagen und Metaprogrammierungsvorlagen. Beispielsweise kann ein generischer Sortieralgorithmus Arrays verschiedener Datentypen sortieren.

So wählen Sie das beste Golang-Framework für verschiedene Anwendungsszenarien aus So wählen Sie das beste Golang-Framework für verschiedene Anwendungsszenarien aus Jun 05, 2024 pm 04:05 PM

Wählen Sie das beste Go-Framework basierend auf Anwendungsszenarien aus: Berücksichtigen Sie Anwendungstyp, Sprachfunktionen, Leistungsanforderungen und Ökosystem. Gängige Go-Frameworks: Gin (Webanwendung), Echo (Webdienst), Fiber (hoher Durchsatz), gorm (ORM), fasthttp (Geschwindigkeit). Praktischer Fall: Erstellen einer REST-API (Fiber) und Interaktion mit der Datenbank (gorm). Wählen Sie ein Framework: Wählen Sie fasthttp für die Schlüsselleistung, Gin/Echo für flexible Webanwendungen und gorm für die Datenbankinteraktion.

ThinkPhp6 Routing: Wie kann man URL -Parameter mit Sonderzeichen wie Chinesisch vollständig erhalten? ThinkPhp6 Routing: Wie kann man URL -Parameter mit Sonderzeichen wie Chinesisch vollständig erhalten? Apr 01, 2025 pm 02:51 PM

Denkephp6 -Routing -Parameter werden in Chinesisch verarbeitet und vollständiger Akquisition. Im ThinkPhp6 -Framework werden URL -Parameter mit Sonderzeichen (z. B. Chinesen und Interpunktionsmarken) oft verarbeitet ...

Wie löst ich das Problem des Curl-Fehlers 77, wenn Sie mit Elasticsearch 8 mithilfe von ThinkPhp6 und Elasticsearch-Php-Clients eine Verbindung herstellen? Wie löst ich das Problem des Curl-Fehlers 77, wenn Sie mit Elasticsearch 8 mithilfe von ThinkPhp6 und Elasticsearch-Php-Clients eine Verbindung herstellen? Mar 31, 2025 pm 11:36 PM

Verwenden des ThinkPhp6-Frameworks in Kombination mit dem Elasticsearch-Php-Client, um Elasticsearch zu betreiben ...

Wie kann ich die Summe von zwei Datenspalten gleichzeitig in ThinkPhp6 abfragen? Wie kann ich die Summe von zwei Datenspalten gleichzeitig in ThinkPhp6 abfragen? Apr 01, 2025 pm 02:54 PM

ThinkPhp6 -Datenbankabfrage: So verwenden Sie TP6 zum Implementieren von SQL -Anweisungen SelectSum (JIN), Summe (CHU) aus SYSDBUIL in ThinkPhp6 Framework, So verwenden Sie SQL -Anweisung Auswählen ...

See all articles