Filter
Ein Filter ist ein Objekt, das vor oder nach der Ausführung einer Controller-Aktion ausgeführt wird. Beispielsweise kann ein Zugriffskontrollfilter steuern, ob ein bestimmter Endbenutzer die Berechtigung zum Ausführen einer Aktion hat, bevor die Aktion ausgeführt wird, und ein Inhaltskomprimierungsfilter kann den Antwortinhalt komprimieren, nachdem die Aktion ausgeführt wurde, bevor er an den Endbenutzer gesendet wird. (Empfohlenes Lernen:
Filter verwenden
Filter sind im Wesentlichen eine besondere Art von Verhalten, daher ist die Verwendung von Filtern dasselbe wie die Verwendung von Verhalten. Filter können in der Controller-Klasse deklariert werden, indem deren behaviours()-Methode überschrieben wird, wie unten gezeigt:public function behaviors() { return [ [ 'class' => 'yii\filters\HttpCache', 'only' => ['index', 'view'], 'lastModified' => function ($action, $params) { $q = new \yii\db\Query(); return $q->from('user')->max('updated_at'); }, ], ]; }
Wenn eine Aktion mehrere Filter hat, werden diese nacheinander gemäß den folgenden Regeln ausgeführt:
Vorfilterung
Um die in behaviours() im Anwendungstext aufgeführten Filter auszuführen. Führen Sie die in behaviours() aufgeführten Filter im Modul der Reihe nach aus. Führen Sie die in behaviours() aufgeführten Filter nacheinander im Controller aus. Wenn ein Filter die Aktionsausführung beendet, werden nachfolgende Filter (einschließlich Vorfilterung und Nachfilterung) nicht mehr ausgeführt. Führen Sie die Aktion aus, nachdem Sie die Vorfilterung erfolgreich bestanden haben.Post-Filterung
Führen Sie die in behaviours() aufgeführten Filter im Controller in umgekehrter Reihenfolge aus. Führen Sie die in behaviours() aufgeführten Filter im Modul in umgekehrter Reihenfolge aus. Führen Sie die in behaviours() im Anwendungstext aufgeführten Filter in umgekehrter Reihenfolge aus.Das obige ist der detaillierte Inhalt vonWas ist ein YII-Filter?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!