Yii Framework Offizieller Leitfaden Serie 9 – Grundlagen: Ansichten

黄舟
Freigeben: 2023-03-05 17:38:02
Original
1122 Leute haben es durchsucht



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,
));
Nach dem Login kopieren

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.

1. Layout

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......
Nach dem Login kopieren

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.

2. Widget

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(); ?>
Nach dem Login kopieren

oder


<?php $this->widget('path.to.WidgetClass'); ?>
Nach dem Login kopieren

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'
));
?>
Nach dem Login kopieren

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() 调用
    }
}
Nach dem Login kopieren

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.

3. Systemansicht

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)!


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