Eine Ansicht ist ein PHP-Skript, das die Hauptelemente der Benutzerinteraktion enthält. Es kann PHP-Anweisungen enthalten, wir empfehlen jedoch, diese Anweisungen nicht zu ändern Datenmodell, und es ist am besten, es einfach zu halten (nur als Ansicht). Um eine Trennung von Logik und Schnittstelle zu erreichen, sollten große Teile der Logik im Controller oder Modell und nicht in der Ansicht platziert werden.
Eine Ansicht hat einen Namen, der beim Rendern zur Identifizierung der Ansichtsskriptdatei verwendet wird. Der Name der Ansicht ist derselbe wie der Name des Ansichtsskripts. Beispielsweise stammt der Name der Ansicht edit
aus einer Skriptdatei namens edit.php. Zum Rendern müssen Sie CController::render() aufrufen. durch Übergabe des Namens der Ansicht. Diese Methode sucht nach der entsprechenden Ansichtsdatei im Verzeichnis protected/views/ControllerID.
Innerhalb des Ansichtsskripts können wir über $this-> auf die Controller-Instanz zugreifen ; propertyName oder eine beliebige Eigenschaft des Controllers abrufen.
Wir können auch die folgende Push-Methode verwenden, um Daten an die Ansicht zu übergeben:
$this->render('edit', array( 'var1'=>$value1, 'var2'=>$value2, ));
In der obigen Methode extrahiert die render()-Methode den zweiten Parameter des Arrays in eine Variable. Das Ergebnis ist, dass wir im Ansichtsskript direkt auf die Variable $ var1 zugreifen können und $var2.
Layout ist eine spezielle Ansichtsdatei, die zum Dekorieren von Ansichten verwendet wird. Sie enthält normalerweise einen gemeinsamen Teil der Ansicht in der Benutzeroberfläche. Teil und betten Sie dann den Inhalt darin ein
......header here...... <?php echo $content; ?> ......footer here......
wobei $content
die Darstellung des Inhalts speichert Ergebnis anzeigen.
Bei Verwendung von render() wird das Layout implizit angewendet. Das Ansichtsskript protected/views/layouts/main.php
ist die Standardlayoutdatei. Dies kann durch Ändern von CWebApplication::layout oder CWebApplication::layout angepasst werden. Um eine Ansicht ohne Layout zu rendern, müssen Sie renderPartial() aufrufen.
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 häufig in eine Ansicht eingebettet, um komplexe und unabhängige Benutzeroberflächen zu erstellen. Beispielsweise kann ein Kalender-Widget verwendet werden, um eine komplexe Kalenderoberfläche darzustellen. Gizmos machen Benutzeroberflächen wiederverwendbarer.
Wir können ein Widget wie folgt verwenden:
<?php $this->beginWidget('path.to.WidgetClass'); ?> ...可能会由小物件获取的内容主体... <?php $this->endWidget(); ?>
oder
<?php $this->widget('path.to.WidgetClass'); ?>
Letzteres wird für Komponenten verwendet, die keinen Körperinhalt erfordern.
Das Widget kann seine Leistung durch Konfiguration anpassen. Dies geschieht durch den Aufruf von CBaseController::beginWidget oder CBaseController::widget, um seinen Initialisierungseigenschaftswert festzulegen. Wenn wir beispielsweise das CMaskedTextField-Widget verwenden, möchten wir die zu verwendende Maske angeben (die als Ausgabeformat verstanden werden kann). Dazu übergeben wir ein Array, das die Initialisierungswerte dieser Eigenschaften trägt. Der Schlüssel des Arrays ist hier der Name des Attributs, und der Wert des Arrays ist der Wert, der dem Attribut des kleinen Objekts entspricht. Wie unten gezeigt:
<?php $this->widget('CMaskedTextField',array( 'mask'=>'99/99/9999' )); ?>
Sie können CWidget erben und seine Methoden init() und run() überschreiben Definieren Sie ein neues Widget:
class MyWidget extends CWidget { public function init() { // 此方法会被 CController::beginWidget() 调用 } public function run() { // 此方法会被 CController::endWidget() 调用 } }
Das Widget kann es wie eine Controller-eigene Ansicht besitzen. Standardmäßig befinden sich die Ansichtsdateien von Widgets im Unterverzeichnis views
des Verzeichnisses, das die Widget-Klassendateien enthält. Diese Ansichten können durch den Aufruf von CWidget::render() gerendert werden, ähnlich wie Controller. Der einzige Unterschied besteht darin, dass die Ansicht des Widgets keine Unterstützung für Layoutdateien bietet. Darüber hinaus verweist das $this
in der Widget-Ansicht auf die Widget-Instanz statt auf die Controller-Instanz.
Das Rendering der Systemansicht wird normalerweise verwendet, um Yii-Fehler und Protokollinformationen anzuzeigen. Wenn beispielsweise eine Benutzeranforderung von einem nicht vorhandenen Controller oder einer nicht vorhandenen Aktion stammt, löst Yii eine Ausnahme aus, um den Fehler zu erklären. Zu diesem Zeitpunkt verwendet Yii eine spezielle Systemansicht, um den Fehler anzuzeigen.
Die Benennung von Systemansichten folgt einigen Regeln. Beispielsweise wird ein Name wie errorXXX
verwendet, um die CHttpException-Ansicht mit der Fehlernummer XXX
darzustellen. Wenn CHttpException beispielsweise einen 404-Fehler auslöst, wird error404
angezeigt.
Unter framework/views
stellt Yii eine Reihe von Standardsystemansichten bereit. Sie können angepasst werden, indem unter protected/views/system
eine gleichnamige Ansichtsdatei erstellt wird.
Das Obige ist der offizielle Yii Framework-Leitfaden Serie 9 – Grundwissen: Inhalte anzeigen Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!