Filtre
Un filtre est un objet qui est exécuté avant ou après l'exécution d'une action du contrôleur. Par exemple, un filtre de contrôle d'accès peut contrôler si un utilisateur final spécifique est autorisé à effectuer une action avant que l'action ne soit exécutée, et un filtre de compression de contenu peut compresser le contenu de la réponse après l'exécution de l'action avant de l'envoyer à l'utilisateur final. (Apprentissage recommandé :
Utiliser des filtres
Les filtres sont essentiellement un type spécial de comportement, donc utiliser des filtres équivaut à utiliser un comportement. Les filtres peuvent être déclarés dans la classe contrôleur en remplaçant sa méthode behaviors(), comme indiqué ci-dessous :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'); }, ], ]; }
Lorsqu'une action possède plusieurs filtres, ceux-ci sont exécutés séquentiellement selon les règles suivantes :
Pré-filtrage
Dans l'ordre, exécutez les filtres répertoriés dans behaviors() dans le corps de l'application. Exécutez les filtres répertoriés dans behaviors() dans le module dans l'ordre. Exécutez les filtres répertoriés dans behaviors() dans le contrôleur dans l'ordre. Si un filtre met fin à l'exécution de l'action, les filtres suivants (y compris le pré-filtrage et le post-filtrage) ne seront plus exécutés. Exécutez l'action après avoir réussi le pré-filtrage.Post-filtrage
Exécutez les filtres répertoriés dans behaviors() dans le contrôleur dans l'ordre inverse. Exécutez les filtres répertoriés dans behaviors() dans le module dans l'ordre inverse. Exécutez les filtres répertoriés dans behaviors() dans le corps de l'application dans l'ordre inverse.Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!