目次
thinkphp3.x、thinkphp3.xdisplayにおけるdisplayメソッドとshowメソッドの使用例
ホームページ バックエンド開発 PHPチュートリアル thinkphp3.x、thinkphp3.xdisplay_PHPチュートリアルでの表示メソッドとshowメソッドの使用例

thinkphp3.x、thinkphp3.xdisplay_PHPチュートリアルでの表示メソッドとshowメソッドの使用例

Jul 12, 2016 am 08:52 AM
display thinkphp

thinkphp3.x、thinkphp3.xdisplayにおけるdisplayメソッドとshowメソッドの使用例

この記事ではthinkphp3.xにおけるdisplayメソッドとshowメソッドの使用方法について説明します。参考のために皆さんと共有してください。詳細は次のとおりです:

前回の記事でコントローラーとモデルの操作を理解した後、ThinkPHP のビューとは主にテンプレート ファイルとテンプレート エンジンを指します。この記事では、まずテンプレート ファイルとそのレンダリング方法を理解します。出力。

1. テンプレートの定義

テンプレート ファイルをより効果的に管理するために、ThinkPHP はテンプレート ファイルをディレクトリに分割します。 デフォルトのテンプレート ファイル定義ルールは次のとおりです。

テンプレートディレクトリ/[グループ名/][テンプレートテーマ/]モジュール名/オペレーション名+テンプレートサフィックス

デフォルトのテンプレート ディレクトリはプロジェクト内の Tpl です。グループが定義されると、新しいバージョンのテンプレート テーマはデフォルトで空になります (テンプレート テーマ機能が有効になっていないことを示します)。

テンプレート テーマ機能は、複数のテンプレート テーマを切り替えるように設計されています。複数のテンプレート テーマがある場合、DEFAULT_THEME パラメーターを使用してデフォルトのテンプレート テーマ名を設定できます。

各テンプレート テーマの下には、プロジェクトのモジュール名を含むディレクトリがあり、次に各モジュールの特定の操作テンプレート ファイルが含まれます。例:

User モジュールの追加操作に対応するテンプレート ファイルは次のとおりです:

Tpl/User/add.html

テンプレート ファイルのデフォルトのサフィックスは .html ですが、TMPL_TEMPLATE_SUFFIX を通じて別のサフィックスに構成することもできます。たとえば、次のように設定できます:

リーリー

定義後、User モジュールの追加操作に対応するテンプレート ファイルは次のようになります:

Tpl/ユーザー/add.tpl

プロジェクトでモジュール グループ化機能が有効になっている場合 (ユーザー モジュールがホーム グループに属していると仮定)、デフォルトの対応するテンプレート ファイルは次のようになります:

Tpl/Home/User/add.html

グループ モードでは、ディレクトリ構造が深すぎると感じる場合は、TMPL_FILE_DEPR パラメータを設定することで、簡略化されたテンプレートのディレクトリ階層を構成できます。たとえば、次のように設定します。 リーリー

デフォルトのテンプレートファイルは次のようになります:

Tpl/Home/User_add.html

システムにはテンプレート ファイルを自動的に識別するためのルールがあるため、テンプレートのレンダリング出力が簡素化されます。

2. テンプレートのレンダリング

テンプレートを定義した後、display メソッドと show メソッドを通じて出力をレンダリングできます。 display メソッドではテンプレート ファイルを定義する必要がありますが、show メソッドではコンテンツ出力が直接レンダリングされます。

最も一般的に使用されるのは、表示メソッド、呼び出し形式です:

最初のタイプ:

display('[トピック:][モジュール:][オペレーション]'[,'文字エンコーディング'][,'出力タイプ'])

2 番目のタイプ:

display('完全なテンプレートファイル名'[,'文字エンコーディング'][,'出力タイプ'])

以下はパラメータを指定しない最も一般的な使用法です: リーリー

は、システムがデフォルトのルールに従ってテンプレート ファイルを自動的に検索することを意味します。そのため、通常、表示メソッドはパラメーターなしで対応するテンプレートを出力できます。これはテンプレート出力を使用する最も簡単な方法です。

テンプレート ファイルがテンプレート定義ルールに従って定義されていない場合、または他のモジュールでテンプレートを呼び出す必要がある場合は、次を使用できます:

リーリー

は、現在のモジュールの下で編集テンプレートを呼び出すことを意味します

リーリー

は、Member モジュールの下で読み取りテンプレートを呼び出すことを意味します。

テンプレート テーマ関数を使用する場合は、テーマ間呼び出しもサポートできます。次を使用します。

リーリー

は、テーマの下でUserモジュールの編集テンプレートを呼び出すことを意味します。

このメソッドのレンダリング出力には、テンプレート ファイルのパスとサフィックスを書き込む必要はありません。正確に言うと、ここでのモジュールと操作には、必ずしも対応するモジュールや操作がある必要はありません。単にディレクトリ名とファイル名だけです。たとえば、プロジェクトには Public モジュールのメニュー操作はおろか、Public モジュールがまったくない場合もありますが、それでも使用できます

リーリー

このテンプレート ファイルをエクスポートします。これを理解すると、テンプレートの出力が明確になります。

表示メソッドは、出力をレンダリングする際の出力エンコーディングとタイプの指定をサポートしています。例:

リーリー

出力 XML ページのタイプを示します (アプリケーションのニーズを満たすために多くのタイプを出力できます)。

テンプレート ディレクトリがカスタマイズされている場合、またはモジュールに従ってサブディレクトリに保存する必要がない場合は、現時点では、別の方法を使用して処理する必要があります。これを使用して、直接テンプレート ファイル名を渡すだけです。例:

リーリー

この方法では、テンプレートのパスとサフィックスを指定する必要があります。ここでのパブリック ディレクトリは、現在のプロジェクト エントリ ファイルの場所の下にあります。別のサフィックス ファイルの場合は、次のような直接出力もサポートされます。 リーリー

./Public/menu.tpl が実際に存在するテンプレート ファイルである限り。

テンプレート ファイルの場所は、テンプレート ディレクトリではなく、プロジェクトのエントリ ファイルに相対的なものであることに注意してください。

还有一种情况是,你需要获取渲染模板的输出内容,就可以使用fetch方法,fetch方法的用法和display基本一致,区别就在于fetch方法渲染后不是直接输出,而是返回渲染后的内容,例如:

$content = $this->fetch('Member:edit');

ログイン後にコピー

使用fetch方法获取渲染内容后,你可以进行过滤和替换等操作,用于对模板输出的复杂需求。

如果你没有定义任何模板文件,或者把模板内容存储到数据库中的话,你就需要使用show方法来渲染输出了,show方法的调用格式:

show('渲染内容'[,'字符编码'][,'输出类型'])

例如,

$this->show($content);

ログイン後にコピー

也可以指定编码和类型:

$this->show($content, 'utf-8', 'text/xml'); 

ログイン後にコピー

show方法中的内容也可以支持模板解析。

三、模板赋值

我们知道了如何渲染模板输出,但是如果要在模板中输出变量,必须在在控制器中把变量传递给模板,提供了assign方法对模板变量赋值,无论何种变量类型都统一使用assign赋值。

$this->assign('name',$value);
//下面的写法是等效的:
//$this->name = $value;

ログイン後にコピー

assign方法必须在display和show方法之前调用,并且系统只会输出设定的变量,其它变量不会输出(系统变量可以通过特殊的标签输出,可以无需赋值模板变量),一定程度上保证了变量的安全性。

赋值后,就可以在模板文件中输出变量了,如果使用的是内置模板的话,就可以这样输出:

{$name}

ログイン後にコピー

如果要同时输出多个模板变量,可以使用下面的方式:

$array['name'] = 'thinkphp'; 
$array['email'] = 'liu21st@gmail.com'; 
$array['phone'] = '12335678'; 
$this->assign($array);

ログイン後にコピー

这样,就可以在模板文件中同时输出name、email和phone三个变量。

模板变量的输出根据不同的模板引擎有不同的方法,我们在后面会专门讲解内置模板引擎的用法。如果你使用的是PHP本身作为模板引擎的话 ,就可以直接在模板文件里面输出了:

<&#63;php echo $name.'['.$email.''.$phone.']';&#63;>

ログイン後にコピー

如果采用内置的模板引擎,可以使用:

{$name} [ {$email} {$phone} ]

ログイン後にコピー

输出同样的内容。

关于更多的模板标签使用,我们会在后面模板标签中详细讲解。

四、模板替换

在进行模板输出之前,系统还可以对渲染的模板结果进行一些模板的特殊字符串替换操作,也就是实现了模板输出的替换和过滤。这个机制可以使得模板文件的定义更加方便,默认的替换规则有:

../Public: 会被替换成当前项目的公共模板目录 通常是 /项目目录/Tpl/当前主题/Public/

__TMPL__: 会替换成项目的模板目录 通常是 /项目目录/Tpl/当前主题/

(注:为了部署安全考虑,../Public和__TMPL__不再建议使用)

__PUBLIC__:会被替换成当前网站的公共目录 通常是 /Public/

__ROOT__: 会替换成当前网站的地址(不含域名)

__APP__: 会替换成当前项目的URL地址 (不含域名)

__GROUP__:会替换成当前分组的URL地址 (不含域名)

__URL__: 会替换成当前模块的URL地址(不含域名)

__ACTION__:会替换成当前操作的URL地址 (不含域名)

__SELF__: 会替换成当前的页面URL

注意这些特殊的字符串是严格区别大小写的,并且这些特殊字符串的替换规则是可以更改或者增加的,我们只需要在项目配置文件中配置TMPL_PARSE_STRING就可以完成。如果有相同的数组索引,就会更改系统的默认规则。例如:

'TMPL_PARSE_STRING' =>array( 
  '__PUBLIC__' => '/Common', // 更改默认的/Public 替换规则 
  '__JS__' => '/Public/JS/', // 增加新的JS类库路径替换规则 
  '/Uploads' => '/Uploads', // 增加新的上传路径替换规则 
)

ログイン後にコピー

有了模板替换规则后,页面上所有的__PUBLIC__ 字符串都会被替换,那如果确实需要输出__PUBLIC__ 字符串到模板呢,我们可以通过增加替换规则的方式,例如:

'TMPL_PARSE_STRING' =>array( 
  '--PUBLIC--' => '__PUBLIC__', // 采用新规则输出/Public字符串 
)

ログイン後にコピー

这样增加替换规则后,如果我们要输出__PUBLIC__ 字符串,只需要在模板中添加--PUBLIC--,其他替换字符串的输出方式类似。

五、总结

通过本篇的学习,我们大概掌握了如何定义模板文件和进行模板渲染输出,以及如何赋值模板变量,后面我们将会学习如何在模板文件中使用标签来简化你的书写。

PS:这里推荐几款本站的格式化美化工具,相信大家在以后的开发中能够用得上:

php代码在线格式化美化工具:
http://tools.jb51.net/code/phpformat

JavaScriptコードの美化/圧縮/フォーマット/暗号化ツール:
http://tools.jb51.net/code/jscompress

オンライン XML フォーマット/圧縮ツール:
http://tools.jb51.net/code/xmlformat

JSON コードのフォーマットおよび美化ツール:
http://tools.jb51.net/code/json

オンライン XML/JSON 変換ツール:
http://tools.jb51.net/code/xmljson

SQL コードのオンライン書式設定および美化ツール:
http://tools.jb51.net/code/sqlcodeformat

より thinkPHP 関連のコンテンツに興味のある読者は、このサイトの特別トピック「ThinkPHP 入門チュートリアル」、「ThinkPHP 一般的なメソッドの概要」、「Smarty テンプレートの基本チュートリアル」、および「PHP テンプレート テクノロジの概要」をチェックしてください。

この記事が皆さんの ThinkPHP フレームワークに基づく PHP プログラムの設計に役立つことを願っています。

www.bkjia.com本当http://www.bkjia.com/PHPjc/1127838.html技術記事 thinkphp3.x、thinkphp3.xdisplayにおけるdisplayメソッドとshowメソッドの使用例 この記事ではthinkphp3.xにおけるdisplayメソッドとshowメソッドの使用方法について説明します。参考のために皆さんと共有してください...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

富士フイルム X-M5 の価格予想が上昇、自撮りディスプレイの流出で以前は手頃な価格だったカメララインが複雑化 富士フイルム X-M5 の価格予想が上昇、自撮りディスプレイの流出で以前は手頃な価格だったカメララインが複雑化 Sep 07, 2024 am 09:34 AM

富士フイルムのファンは最近、X-T50 の登場に非常に興奮していました。X-T50 は、1,000 ドル以下の APS-C カテゴリーで非常に人気となっていた低価格志向の富士フイルム X-T30 II の再発売を提示したからです。残念ながら、富士フイルム X-T50 の発売に伴い

thinkphpプロジェクトの実行方法 thinkphpプロジェクトの実行方法 Apr 09, 2024 pm 05:33 PM

ThinkPHP プロジェクトを実行するには、Composer をインストールし、Composer を使用してプロジェクトを作成し、プロジェクト ディレクトリに入り、php bin/consoleserve を実行し、http://localhost:8000 にアクセスしてようこそページを表示する必要があります。

thinkphp にはいくつかのバージョンがあります thinkphp にはいくつかのバージョンがあります Apr 09, 2024 pm 06:09 PM

ThinkPHP には、さまざまな PHP バージョン向けに設計された複数のバージョンがあります。メジャー バージョンには 3.2、5.0、5.1、および 6.0 が含まれますが、マイナー バージョンはバグを修正し、新機能を提供するために使用されます。最新の安定バージョンは ThinkPHP 6.0.16 です。バージョンを選択するときは、PHP バージョン、機能要件、コミュニティ サポートを考慮してください。最高のパフォーマンスとサポートを得るには、最新の安定バージョンを使用することをお勧めします。

thinkphpの実行方法 thinkphpの実行方法 Apr 09, 2024 pm 05:39 PM

ThinkPHP フレームワークをローカルで実行する手順: ThinkPHP フレームワークをローカル ディレクトリにダウンロードして解凍します。 ThinkPHP ルート ディレクトリを指す仮想ホスト (オプション) を作成します。データベース接続パラメータを構成します。 Webサーバーを起動します。 ThinkPHP アプリケーションを初期化します。 ThinkPHP アプリケーションの URL にアクセスして実行します。

laravelとthinkphpではどちらが優れていますか? laravelとthinkphpではどちらが優れていますか? Apr 09, 2024 pm 03:18 PM

Laravel フレームワークと ThinkPHP フレームワークのパフォーマンスの比較: ThinkPHP は、最適化とキャッシュに重点を置いて、一般に Laravel よりもパフォーマンスが優れています。 Laravel は優れたパフォーマンスを発揮しますが、複雑なアプリケーションの場合は、ThinkPHP の方が適している可能性があります。

開発に関する提案: ThinkPHP フレームワークを使用して非同期タスクを実装する方法 開発に関する提案: ThinkPHP フレームワークを使用して非同期タスクを実装する方法 Nov 22, 2023 pm 12:01 PM

「開発に関する提案: ThinkPHP フレームワークを使用して非同期タスクを実装する方法」 インターネット技術の急速な発展に伴い、Web アプリケーションには、多数の同時リクエストと複雑なビジネス ロジックを処理するための要件が​​ますます高まっています。システムのパフォーマンスとユーザー エクスペリエンスを向上させるために、開発者は多くの場合、電子メールの送信、ファイルのアップロードの処理、レポートの生成など、時間のかかる操作を実行するために非同期タスクの使用を検討します。 PHP の分野では、人気のある開発フレームワークとして ThinkPHP フレームワークが、非同期タスクを実装するための便利な方法をいくつか提供しています。

thinkphpのインストール方法 thinkphpのインストール方法 Apr 09, 2024 pm 05:42 PM

ThinkPHP のインストール手順: PHP、Composer、および MySQL 環境を準備します。 Composer を使用してプロジェクトを作成します。 ThinkPHP フレームワークと依存関係をインストールします。データベース接続を構成します。アプリケーションコードを生成します。アプリケーションを起動し、http://localhost:8000 にアクセスします。

サムスン:E Ink テクノロジーをベースにした新しい大型ディスプレイは色を表示し、ワイヤレスで通信します サムスン:E Ink テクノロジーをベースにした新しい大型ディスプレイは色を表示し、ワイヤレスで通信します Jun 19, 2024 pm 03:37 PM

私たちは、電子書籍リーダーなど、電子インクを搭載したディスプレイをベースにしたデバイスについて頻繁にレポートしています。この技術には多くの利点があります。バックライトなしで明るい環境でも読み取ることができ、光がない状態でスイッチングするときのみ電力が必要です。

See all articles