


Detaillierte Erläuterung der Methoden zum Erstellen von Ansichten und Rendern von Ansichten im Yii-Framework von PHP
Ansichten sind Teil des MVC-Musters. Es handelt sich um den Code, der Endbenutzern Daten anzeigt. Die Ansichtsvorlage ist eine PHP-Skriptdatei, die hauptsächlich HTML-Code enthält und über die yiiwebView-Anwendungskomponente verwaltet wird , das hauptsächlich generische Methoden bereitstellt, die beim Erstellen und Rendern von Ansichten helfen, nennen wir die Ansichtsvorlage oder Ansichtsvorlagendatei eine Ansicht.
Ansicht erstellen
Wie oben erwähnt, handelt es sich bei der Ansicht um ein PHP-Skript, das HTML und PHP-Code enthält. Sie können sehen, dass der PHP-Code verwendet wird Um dynamische Inhalte wie Seitentitel und Formular zu generieren, organisiert HTML-Code diese in einer schönen HTML-Seite.
<?php use yii\helpers\Html; use yii\widgets\ActiveForm; /* @var $this yii\web\View */ /* @var $form yii\widgets\ActiveForm */ /* @var $model app\models\LoginForm */ $this->title = 'Login'; ?> <h1><?= Html::encode($this->title) ?></h1> <p>Please fill out the following fields to login:</p> <?php $form = ActiveForm::begin(); ?> <?= $form->field($model, 'username') ?> <?= $form->field($model, 'password')->passwordInput() ?> <?= Html::submitButton('Login') ?> <?php ActiveForm::end(); ?>
In der Ansicht können Sie auf $this zugreifen, um auf yiiwebView zu verweisen und diese Ansichtsdatei zu verwalten und zu rendern.
Zusätzlich zu $this verfügt die Ansicht im obigen Beispiel über weitere vordefinierte Variablen wie $model. Diese Variablen stellen Daten dar, die vom Controller oder anderen Objekten an die Ansicht übergeben werden und das Rendern der Ansicht auslösen.
Tipp: Listen Sie die vordefinierten Variablen im Header-Kommentar der Ansichtsdatei auf, damit sie vom IDE-Editor erkannt werden können. Dies ist auch eine gute Möglichkeit, Ansichtsdokumente zu generieren.
Sicherheit
Beim Erstellen von Ansichten, die HTML-Seiten generieren, ist es wichtig, Benutzereingabedaten vor der Anzeige zu transkodieren und zu filtern, da Ihre Anwendung sonst möglicherweise anfällig für Cross-Site-Scripting-Angriffe ist.
Um einfachen Text anzuzeigen, rufen Sie zunächst yiihelpersHtml::encode() zur Transkodierung auf. Beispielsweise transkodiert der folgende Code den Benutzernamen vor der Anzeige:
<?php use yii\helpers\Html; ?> <div class="username"> <?= Html::encode($user->name) ?> </div>
Um HTML-Inhalte anzuzeigen, rufen Sie zuerst auf yiihelpersHtmlPurifier zum Filtern des Inhalts Der folgende Code filtert beispielsweise den übermittelten Inhalt, bevor er angezeigt wird:
<?php use yii\helpers\HtmlPurifier; ?> <div class="post"> <?= HtmlPurifier::process($post->text) ?> </div>
Tipp: HTMLPurifier leistet gute Arbeit bei der Gewährleistung der Sicherheit der Ausgabedaten, seine Leistung ist jedoch gering nicht gut. Wenn Ihre Anwendung eine hohe Leistung benötigt, sollten Sie die gefilterten Ergebnisse zwischenspeichern.
Ansichten organisieren
Ähnlich wie bei Controllern und Modellen gibt es einige Konventionen zum Organisieren von Ansichten:
Von Controllern gerenderte Ansichtsdateien werden standardmäßig unter @app/views/ControllerID platziert Verzeichnis, wobei ControllerID der Controller-ID entspricht. Die Controller-Klasse ist beispielsweise PostController, das Ansichtsdateiverzeichnis sollte @app/views/post sein und das der Controller-Klasse PostCommentController entsprechende Verzeichnis ist @app/views/post-comment . Wenn es sich in einem Modul-Controller befindet, sollte das Verzeichnis das Verzeichnis „views/ControllerID“ unter dem Modulverzeichnis „yiibaseModule::basePath“ sein.
Für das Widget-Rendering werden die Ansichtsdateien standardmäßig im Verzeichnis „WidgetPath/views“ abgelegt stellt das Verzeichnis dar, in dem sich die Widget-Klassendatei befindet; Für Ansichtsdateien, die von anderen Objekten gerendert werden, wird empfohlen, ähnliche Regeln wie für Widgets zu befolgen.
Sie können die Methode yiibaseViewContextInterface::getViewPath() eines Controllers oder Widgets überschreiben, um das Standardverzeichnis für Ansichtsdateien anzupassen.
/** * @param string $view 视图名或文件路径,由实际的渲染方法决定 * @param array $params 传递给视图的数据 * @return string 渲染结果 */ methodName($view, $params = [])
namespace app\controllers; use Yii; use app\models\Post; use yii\web\Controller; use yii\web\NotFoundHttpException; class PostController extends Controller { public function actionView($id) { $model = Post::findOne($id); if ($model === null) { throw new NotFoundHttpException; } // 渲染一个名称为"view"的视图并使用布局 return $this->render('view', [ 'model' => $model, ]); } }
Ein Widget ist eine Instanz von CWidget oder seiner Unterklasse. Es handelt sich um eine Komponente, die hauptsächlich zur Darstellung von Daten verwendet wird. Widgets werden normalerweise in eine Ansicht eingebettet Um eine komplexe und unabhängige Benutzeroberfläche zu generieren, können Widgets verwendet werden, um die Benutzeroberfläche wiederverwendbar zu machen.
<?php $this->beginWidget('path.to.WidgetClass'); ?> ...可能会由小物件获取的内容主体... <?php $this->endWidget(); ?>
<?php $this->widget('path.to.WidgetClass'); ?>
<?php $this->widget('CMaskedTextField',array( 'mask'=>'99/99/9999' )); ?>
class MyWidget extends CWidget { public function init() { // 此方法会被 CController::beginWidget() 调用 } public function run() { // 此方法会被 CController::endWidget() 调用 } }
yii\web\View::renderAjax(): 渲染一个 视图名 并注入所有注册的JS/CSS脚本和文件,通常使用在响应AJAX网页请求的情况下。
yii\base\View::renderFile(): 渲染一个视图文件目录或别名下的视图文件。
例如,视图中的如下代码会渲染该视图所在目录下的 _overview.php 视图文件, 记住视图中 $this 对应 yii\base\View 组件:
<?= $this->render('_overview') ?>
其他地方渲染
在任何地方都可以通过表达式 Yii::$app->view 访问 yii\base\View 应用组件, 调用它的如前所述的方法渲染视图,例如:
// 显示视图文件 "@app/views/site/license.php" echo \Yii::$app->view->renderFile('@app/views/site/license.php');
更多PHP的Yii框架中创建视图和渲染视图的方法详解相关文章请关注PHP中文网!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Alipay PHP ...

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Die Hijacking der Sitzung kann in den folgenden Schritten erreicht werden: 1. Erhalten Sie die Sitzungs -ID, 2. Verwenden Sie die Sitzungs -ID, 3. Halten Sie die Sitzung aktiv. Zu den Methoden zur Verhinderung der Sitzung der Sitzung in PHP gehören: 1. Verwenden Sie die Funktion Session_regenerate_id (), um die Sitzungs -ID zu regenerieren. 2. Store -Sitzungsdaten über die Datenbank, 3. Stellen Sie sicher, dass alle Sitzungsdaten über HTTPS übertragen werden.

Die Anwendung des soliden Prinzips in der PHP -Entwicklung umfasst: 1. Prinzip der Einzelverantwortung (SRP): Jede Klasse ist nur für eine Funktion verantwortlich. 2. Open and Close Principle (OCP): Änderungen werden eher durch Erweiterung als durch Modifikation erreicht. 3.. Lischs Substitutionsprinzip (LSP): Unterklassen können Basisklassen ersetzen, ohne die Programmgenauigkeit zu beeinträchtigen. 4. Schnittstellen-Isolationsprinzip (ISP): Verwenden Sie feinkörnige Schnittstellen, um Abhängigkeiten und nicht verwendete Methoden zu vermeiden. 5. Abhängigkeitsinversionsprinzip (DIP): Hoch- und niedrige Module beruhen auf der Abstraktion und werden durch Abhängigkeitsinjektion implementiert.

So setzen Sie die Berechtigungen von Unixsocket automatisch nach dem Neustart des Systems. Jedes Mal, wenn das System neu startet, müssen wir den folgenden Befehl ausführen, um die Berechtigungen von Unixsocket: sudo ...

Wie debugge ich den CLI -Modus in PhpStorm? Bei der Entwicklung mit PHPSTORM müssen wir manchmal den PHP im CLI -Modus (COMS -Zeilenschnittstellen) debuggen ...

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Senden von JSON -Daten mithilfe der Curl -Bibliothek von PHP in der PHP -Entwicklung müssen häufig mit externen APIs interagieren. Eine der gängigen Möglichkeiten besteht darin, die Curl Library zu verwenden, um Post � ...
