目次
1. 布局
2. 小物件
3. 系统视图
1. レイアウト
2. ウィジェット
3. システム ビュー
ホームページ バックエンド開発 PHPチュートリアル Yii Framework 公式ガイド シリーズ 9 - 基本: ビュー

Yii Framework 公式ガイド シリーズ 9 - 基本: ビュー

Feb 11, 2017 am 09:38 AM



ビューは、主要なユーザー対話要素を含む PHP スクリプトです。これには PHP ステートメントを含めることができますが、これらのステートメントはデータ モデルを変更しないことをお勧めします。また、その単純さを維持することが最善です。見解として)。ロジックとインターフェイスを分離するには、ロジックの大部分をビューではなくコントローラーまたはモデルに配置する必要があります。

ビューには名前があり、レンダリング時にその名前はビュー スクリプト ファイルを識別するために使用されます。ビューの名前は、そのビュー スクリプトの名前と同じです。たとえば、ビューの名前 edit は、edit.php という名前のスクリプト ファイルから取得されます。レンダリングするには、CController を呼び出す必要があります。 :: ビューの名前を渡すことによって()。このメソッドは、protected/views/ControllerID ディレクトリで対応するビュー ファイルを検索します。ビュー スクリプト内で、$this->propertyName を使用してコントローラー インスタンスにアクセスするか、Get any を使用できます。 edit的名称出自一个名为 edit.php 的脚本文件.要渲染时如,需通过传递视图的名称调用 CController::render()。这个方法将在 protected/views/ControllerID 目录下寻找对应的视图文件.

在视图脚本内部,我们可以通过 $this 来访问控制器实例.我们可以在视图里以 $this->propertyName 的方式或取控制器的任何属性.

我们也可以用以下推送的方式传递数据到视图里:


$this->render('edit', array(
    'var1'=>$value1,
    'var2'=>$value2,
));
ログイン後にコピー

在以上的方式中, render() 方法将提取数组的第二个参数到变量里.其产生的结果是,在视图脚本里,我们可以直接访问变量$var1 和 $var2。

1. 布局

布局是一种用来修饰视图的特殊的视图文件.它通常包含了用户界面中通用的一部分视图.例如:布局可以包含header和footer的部分,然后把内容嵌入其间.


......header here......
<?php echo $content; ?>
......footer here......
ログイン後にコピー

其中的 $content 则储存了内容视图的渲染结果.

当使用 render() 时,布局被隐式应用。视图脚本 protected/views/layouts/main.php 是默认的布局文件.这可以通过改变 CWebApplication::layout 或者 CWebApplication::layout 进行自定义。要渲染一个不带布局的视图,则需调用renderPartial() 

2. 小物件

小物件是 CWidget 或其子类的实例.它是一个主要用于表现数据的组件。小物件通常内嵌于一个视图来产生一些复杂而独立的用户界面。例如,一个日历小物件可用于渲染一个复杂的日历界面。小物件使用户界面更加可复用。

我们可以按如下视图脚本来使用一个小物件:


<?php $this->beginWidget('path.to.WidgetClass'); ?>
...可能会由小物件获取的内容主体...
<?php $this->endWidget(); ?>
ログイン後にコピー

或者


<?php $this->widget('path.to.WidgetClass'); ?>
ログイン後にコピー

后者用于不需要任何 body 内容的组件。

小物件可通过配置来定制它的表现.这是通过调用 CBaseController::beginWidget 或 CBaseController::widget 设置其初始化属性值来完成的。例如,当使用 CMaskedTextField 小物件时,我们想指定被使用的 mask (可理解为一种输出格式),我们通过传递一个携带这些属性初始化值的数组来实现。这里的数组的键是属性的名称,而数组的值则是小物件属性所对应的值。正如以下所示 :


<?php
$this->widget('CMaskedTextField',array(
    'mask'=>'99/99/9999'
));
?>
ログイン後にコピー

继承 CWidget 并覆盖其init() 和 run() 方法,可以定义一个新的小物件:


class MyWidget extends CWidget
{
    public function init()
    {
        // 此方法会被 CController::beginWidget() 调用
    }

    public function run()
    {
        // 此方法会被 CController::endWidget() 调用
    }
}
ログイン後にコピー

小物件可以像一个控制器一样拥有它自己的视图。默认情况下,小物件的视图文件位于包含了小物件类文件目录的 views子目录之下。这些视图可以通过调用 CWidget::render() 渲染,这一点和控制器很相似。唯一不同的是,小物件的视图没有布局文件支持。另外,小物件视图中的$this指向小物件实例而不是控制器实例。

3. 系统视图

系统视图的渲染通常用于展示 Yii 的错误和日志信息。例如,当用户请求来自一个不存在的控制器或动作时,Yii 会抛出一个异常来解释这个错误, 这时,Yii 就会使用一个特殊的系统视图来显示此错误。

系统视图的命名遵从了一些规则。比如像 errorXXX 这样的名称就是用于渲染展示错误号 XXX 的 CHttpException 的视图。例如,如果 CHttpException 抛出一个 404错误,那么 error404 就会被显示。

在 framework/views 下, Yii 提供了一系列默认的系统视图。他们可以通过在 protected/views/system次のプッシュ メソッドを使用してビューにデータを渡すこともできます:


rrreee🎜🎜🎜 上記のメソッドでは、render() メソッドは配列パラメータの 2 番目の要素を抽出します。その結果、ビュー スクリプトで変数 $var1 と $var2 に直接アクセスできるようになります。 🎜

1. レイアウト

🎜 レイアウトは、ビューを変更するために使用される特別なビュー ファイルです。たとえば、レイアウトにはヘッダー部分とフッター部分が含まれます。を選択し、その中にコンテンツを埋め込みます。🎜🎜🎜🎜🎜🎜rrreee🎜🎜🎜 $content には、コンテンツ ビューのレンダリング結果が保存されます。🎜🎜 render() を使用する場合、レイアウトは暗黙的に適用済み。ビュー スクリプト protected/views/layouts/main.php はデフォルトのレイアウト ファイルです。これは CWebApplication::layout または CWebApplication::layout を変更することでカスタマイズできます。 レイアウトなしでビューをレンダリングするには、renderPartial() 🎜 を呼び出す必要があります。 🎜

2. ウィジェット

🎜 ウィジェットは、CWidget またはそのサブクラスのインスタンスであり、主にデータを表すために使用されるコンポーネントです。ウィジェットは多くの場合、複雑で独立したユーザー インターフェイスを作成するためにビューに埋め込まれます。たとえば、カレンダー ウィジェットを使用して、複雑なカレンダー インターフェイスをレンダリングできます。ギズモにより、ユーザー インターフェイスがより再利用可能になります。 🎜🎜次のようにウィジェットを使用できます: 🎜🎜🎜🎜🎜🎜rrreee🎜🎜🎜 または 🎜🎜🎜🎜🎜🎜rrreee🎜🎜🎜 後者は、本文コンテンツを必要としないコンポーネントに使用されます。 🎜🎜ウィジェットは、構成を通じてそのパフォーマンスをカスタマイズできます。これは、CBaseController::beginWidget または CBaseController::widget を呼び出して初期化プロパティ値を設定することによって行われます。たとえば、CMaskedTextField ウィジェットを使用する場合、使用するマスク (出力形式として理解できます) を指定するには、これらのプロパティの初期化値を含む配列を渡します。ここでの配列のキーは属性の名前であり、配列の値は小さなオブジェクトの属性に対応する値です。以下に示すように: 🎜🎜🎜🎜🎜🎜rrreee🎜🎜🎜 CWidget を継承し、その init() メソッドと run() メソッドをオーバーライドして、新しいウィジェットを定義します: 🎜🎜🎜🎜🎜🎜rrreee🎜🎜🎜ウィジェットはコントローラーと同じように独自のビュー 🎜 を持つことができます。デフォルトでは、ウィジェットのビュー ファイルは、ウィジェット クラス ファイルが含まれるディレクトリの views サブディレクトリの下にあります。これらのビューは、コントローラーと同様に、CWidget::render() を呼び出すことでレンダリングできます。唯一の違いは、ウィジェットのビューがレイアウト ファイルをサポートしていないことです。さらに、ウィジェット ビューの $this は、コントローラー インスタンスではなくウィジェット インスタンスを指します。 🎜

3. システム ビュー

🎜 システム ビューのレンダリングは通常、Yii エラーとログ情報を表示するために使用されます。たとえば、ユーザーリクエストが存在しないコントローラーまたはアクションから来た場合、Yii はエラーを説明するために例外をスローします。このとき、Yii は特別なシステムビューを使用してエラーを表示します。 🎜🎜 システム ビューの命名は、いくつかのルールに従います。たとえば、errorXXX のような名前は、エラー番号 XXX の CHttpException を示すビューをレンダリングするために使用されます。たとえば、CHttpException が 404 エラーをスローした場合、error404 が表示されます。 🎜🎜framework/views の下で、Yii は一連のデフォルトのシステムビューを提供します。 これらは、protected/views/system 🎜 に同じ名前のビュー ファイルを作成することでカスタマイズできます。 🎜🎜上記は、Yii Framework 公式ガイド シリーズ 9 - 基礎知識: 内容の表示です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。 🎜🎜🎜🎜
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

Vue で編集可能なテーブルを実装する方法 Vue で編集可能なテーブルを実装する方法 Nov 08, 2023 pm 12:51 PM

テーブルは、多くの Web アプリケーションにおいて不可欠なコンポーネントです。通常、テーブルには大量のデータが含まれるため、ユーザー エクスペリエンスを向上させるためにテーブルにはいくつかの特定の機能が必要です。重要な機能の 1 つは編集可能性です。この記事では、Vue.js を使用して編集可能なテーブルを実装する方法を検討し、具体的なコード例を示します。ステップ 1: データを準備する まず、テーブルのデータを準備する必要があります。 JSON オブジェクトを使用してテーブルのデータを保存し、それを Vue インスタンスの data プロパティに保存できます。この場合

SpringBoot と SpringMVC の違いと比較を理解する SpringBoot と SpringMVC の違いと比較を理解する Dec 29, 2023 am 09:20 AM

SpringBoot と SpringMVC を比較し、その違いを理解する Java 開発の継続的な発展に伴い、Spring フレームワークは多くの開発者や企業にとって最初の選択肢となっています。 Spring エコシステムでは、SpringBoot と SpringMVC の 2 つの非常に重要なコンポーネントです。どちらも Spring フレームワークをベースにしていますが、機能や使用方法にいくつかの違いがあります。この記事では、SpringBoot と Spring の比較に焦点を当てます。

Word ではどのようなビューが表示されますか? Word ではどのようなビューが表示されますか? Mar 19, 2024 pm 06:10 PM

Word の組版スキルを学びたい学生は多いと思いますが、編集者は、組版スキルを学ぶ前に Word のビューをしっかり理解する必要があるとこっそり教えてくれます。Word2007 では、ユーザーが選択できる 5 つのビューが用意されています。ビューにはページが含まれます。ビュー、読書レイアウト ビュー、Web レイアウト ビュー、アウトライン ビュー、および通常ビュー、今日はエディターでこれら 5 つの単語ビューについて学びましょう。 1. ページ ビュー ページ ビューは、主にヘッダー、フッター、グラフィック オブジェクト、段組み設定、ページ余白などの要素を含む Word2007 文書の印刷結果の外観を表示することができ、印刷結果に最も近いページ ビューです。 2. 読書レイアウト ビュー 読書レイアウト ビューでは、本の段組みスタイルで Word2007 ドキュメントと Office が表示されます。

PHP で Yii フレームワークを使用する方法 PHP で Yii フレームワークを使用する方法 Jun 27, 2023 pm 07:00 PM

Web アプリケーションの急速な開発に伴い、最新の Web 開発は重要なスキルになりました。効率的な Web アプリケーションを開発するために多くのフレームワークやツールが利用できますが、その中でも Yii フレームワークは非常に人気のあるフレームワークです。 Yii は、最新のデザインパターンとテクノロジーを使用し、強力なツールとコンポーネントを提供し、複雑な Web アプリケーションの構築に最適な、高性能のコンポーネントベースの PHP フレームワークです。この記事では、Yii フレームワークを使用して Web アプリケーションを構築する方法について説明します。まずYiiフレームワークをインストールし、

Yii フレームワークを使用して Web ページのキャッシュとページのチャンクを実装する手順 Yii フレームワークを使用して Web ページのキャッシュとページのチャンクを実装する手順 Jul 30, 2023 am 09:22 AM

Yii フレームワークを使用して Web ページのキャッシュとページのチャンクを実装する手順 はじめに: Web 開発プロセス中、Web サイトのパフォーマンスとユーザー エクスペリエンスを向上させるために、多くの場合、ページのキャッシュとチャンクが必要になります。 Yii フレームワークは強力なキャッシュとレイアウト機能を提供しており、開発者が Web ページのキャッシュとページ チャンキングを迅速に実装できるようにします。この記事では、Yii フレームワークを使用して Web ページのキャッシュとページ チャンキングを実装する方法を紹介します。 1. Web ページのキャッシュをオンにする Yii フレームワークでは、設定ファイルを通じて Web ページのキャッシュをオンにすることができます。メイン設定ファイルを開きます。

Yii フレームワークミドルウェア: アプリケーションに複数のデータストレージサポートを提供 Yii フレームワークミドルウェア: アプリケーションに複数のデータストレージサポートを提供 Jul 28, 2023 pm 12:43 PM

Yii フレームワークのミドルウェア: アプリケーションに複数のデータ ストレージのサポートを提供する はじめに ミドルウェア (ミドルウェア) は、Yii フレームワークの重要な概念であり、アプリケーションに複数のデータ ストレージのサポートを提供します。ミドルウェアはフィルターのように機能し、アプリケーションのリクエストとレスポンスの間にカスタム コードを挿入します。ミドルウェアを通じて、リクエストを処理、検証、フィルタリングし、処理された結果を次のミドルウェアまたは最終ハンドラーに渡すことができます。 Yii フレームワークのミドルウェアは非常に使いやすいです

Yii フレームワークを使用してゲームガイド Web サイトを作成する Yii フレームワークを使用してゲームガイド Web サイトを作成する Jun 21, 2023 pm 01:45 PM

近年、ゲーム業界の急速な発展に伴い、ゲームをクリアするためのゲーム戦略を模索するプレイヤーがますます増えています。したがって、ゲームガイド Web サイトを作成することで、プレイヤーはゲームガイドを入手しやすくなると同時に、プレイヤーにより良いゲーム体験を提供することができます。このような Web サイトを作成する場合、開発には Yii フレームワークを使用できます。 Yii フレームワークは、PHP プログラミング言語に基づいた Web アプリケーション開発フレームワークです。高効率、セキュリティ、強力な拡張性という特徴があり、ゲームガイドをより迅速かつ効率的に作成するのに役立ちます。

Yii Framework Middleware: アプリケーションにロギング機能とデバッグ機能を追加します。 Yii Framework Middleware: アプリケーションにロギング機能とデバッグ機能を追加します。 Jul 28, 2023 pm 08:49 PM

Yii フレームワーク ミドルウェア: アプリケーションにロギング機能とデバッグ機能を追加する [はじめに] Web アプリケーションを開発する場合、通常、アプリケーションのパフォーマンスと安定性を向上させるために、いくつかの機能を追加する必要があります。 Yii フレームワークは、アプリケーションがリクエストを処理する前後にいくつかの追加タスクを実行できるようにするミドルウェアの概念を提供します。この記事では、Yii フレームワークのミドルウェア機能を使用してロギングとデバッグ機能を実装する方法を紹介します。 【ミドルウェアとは】 ミドルウェアとは、アプリケーションがリクエストを処理する前後のリクエストとレスポンスの処理を指します。

See all articles