Was ist Vorlagenvererbung in Thinkphp? Beispiele für die Vorlagenvererbung

不言
Freigeben: 2023-04-03 11:58:02
Original
1807 Leute haben es durchsucht

Die Vorlagenvererbung in thinkPHP ähnelt der Klassenvererbung. Eine Vorlage kann eine Basisvorlage (oder ein Layout) definieren, verwandte Blöcke darin definieren und dann die Untervorlagen der Basisvorlage erweitern Grundvorlage.

Daher besteht der Vorteil der Vorlagenvererbung tatsächlich darin, Blöcke in der Basisvorlage zu entwerfen und diese Blöcke in Untervorlagen zu ersetzen.

Jeder Block besteht aus <block></block>-Tags. Das Folgende ist ein typisches Blockdesign in der Basisvorlage (wird zum Entwerfen von Website-Titeln verwendet):

<block name="title"><title>网站标题</title></block>
Nach dem Login kopieren

Das Block-Tag muss das Namensattribut angeben, um den Namen des aktuellen Blocks zu identifizieren. Diese Kennung sollte in der eindeutig sein aktuelle Vorlage Ja, das Block-Tag kann beliebige Vorlageninhalte enthalten, einschließlich anderer Tags und Variablen, zum Beispiel:

<block name="title"><title>{$web_title}</title></block>
Nach dem Login kopieren

Sie können sogar externe Dateien in den Block laden:

<block name="include"><include file="Public:header" /></block>
Nach dem Login kopieren

Eine Vorlage kann definieren Alle Mehrfachnamen identifizieren sich nicht wiederholende Blöcke. Beispielsweise wird unten eine base.html-Grundvorlage definiert:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<block name="title"><title>标题</title></block>
</head>
<body>
<block name="menu">菜单</block>
<block name="left">左边分栏</block>
<block name="main">主内容</block>
<block name="right">右边分栏</block>
<block name="footer">底部</block>
</body>
</html>
Nach dem Login kopieren

Dann verwenden wir die Vererbung in der Untervorlage (eigentlich die Eingabevorlage der aktuellen Operation):

<extend name="base" />
<block name="title"><title>{$title}</title></block>
<block name="menu">
<a href="/" >首页</a>
<a href="/info/" >资讯</a>
<a href="/bbs/" >论坛</a>
</block>
<block name="left"></block>
<block name="content">
<volist name="list" id="vo">
<a href="/new/{$vo.id}">{$vo.title}</a><br/>
 {$vo.content}
</volist>
</block>
<block name="right">
 最新资讯:
<volist name="news" id="new">
<a href="/new/{$new.id}">{$new.title}</a><br/>
</volist>
</block>
<block name="footer">
 @ThinkPHP2012 版权所有
</block>
Nach dem Login kopieren

Wie Sie sehen, wird das Extend-Tag in der Untervorlage verwendet, um die Vorlage zu definieren, die vererbt werden muss. Das Extend-Tag wird auf die gleiche Weise wie das Include-Tag verwendet. Sie können auch andere laden Vorlagen:

<extend name="Public:base" />
Nach dem Login kopieren

oder verwenden Sie absolute Dateipfade zum Laden

<extend name="./Template/Public/base.html" />
Nach dem Login kopieren

In der aktuellen Untervorlage können Sie nur Blöcke und keine anderen Vorlageninhalte definieren, da diese sonst direkt und nur ignoriert werden Es können die in der Basisvorlage definierten Blöcke definiert werden.

Wenn beispielsweise die folgende Definition verwendet wird:

<block name="title"><title>{$title}</title></block>
<a href="/" >首页</a>
<a href="/info/" >资讯</a>
<a href="/bbs/" >论坛</a>
Nach dem Login kopieren

Der Navigationsbereich ist ungültig und wird nicht in der Vorlage angezeigt.

In der Untervorlage können Sie die Definition des Blocks in der Basisvorlage überladen. Wenn sie nicht neu definiert wird, bedeutet dies, dass die Blockdefinition in der Basisvorlage verwendet wird definiert. Dies bedeutet, dass der Inhalt des Blocks in der Basisvorlage gelöscht wird. Im obigen Beispiel haben wir den Inhalt des linken Blocks gelöscht und die anderen Blöcke neu geladen.

Die Reihenfolge der Blockdefinitionen in Untervorlagen ist willkürlich. Der Schlüssel zur Verwendung der Vorlagenvererbung liegt in der Art und Weise, wie die Basisvorlage angeordnet und gestaltet ist. In Kombination mit der ursprünglichen Layoutfunktion ist sie flexibler.

Verwandte Empfehlungen:

Ausführliches Video-Tutorial zum ThinkPHP-Framework der Geek Academy

Das obige ist der detaillierte Inhalt vonWas ist Vorlagenvererbung in Thinkphp? Beispiele für die Vorlagenvererbung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!