您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關yii過濾器有什么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
過濾器
過濾器是控制器動作執行之前或之后執行的對象。 例如訪問控制過濾器可在動作執行之前來控制特殊終端用戶是否有權限執行動作, 內容壓縮過濾器可在動作執行之后發給終端用戶之前壓縮響應內容。 (推薦學習:yii框架)
過濾器可包含預過濾(過濾邏輯在動作之前)或后過濾(過濾邏輯在動作之后), 也可同時包含兩者。
使用過濾器
過濾器本質上是一類特殊的 行為, 所以使用過濾器和 使用行為一樣。 可以在控制器類中覆蓋它的 behaviors() 方法來聲明過濾器,如下所示:
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'); }, ], ]; }
控制器類的過濾器默認應用到該類的 所有 動作, 你可以配置 only 屬性明確指定控制器應用到哪些動作。 在上述例子中,HttpCache 過濾器只應用到 index 和 view 動作。 也可以配置 except 屬性 使一些動作不執行過濾器。
除了控制器外,可在 模塊或應用主體 中申明過濾器。 申明之后,過濾器會應用到所屬該模塊或應用主體的 所有 控制器動作, 除非像上述一樣配置過濾器的 only 和 except 屬性。
注意: 在模塊或應用主體中申明過濾器,在only 和 except 屬性中使用路由 代替動作 ID, 因為在模塊或應用主體中只用動作ID并不能唯一指定到具體動作。
當一個動作有多個過濾器時,根據以下規則先后執行:
預過濾
按順序執行應用主體中 behaviors() 列出的過濾器。
按順序執行模塊中 behaviors() 列出的過濾器。
按順序執行控制器中 behaviors() 列出的過濾器。
如果任意過濾器終止動作執行, 后面的過濾器(包括預過濾和后過濾)不再執行。
成功通過預過濾后執行動作。
后過濾
倒序執行控制器中 behaviors() 列出的過濾器。
倒序執行模塊中 behaviors() 列出的過濾器。
倒序執行應用主體中 behaviors() 列出的過濾器。
關于“yii過濾器有什么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。