中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用Yii里的特別行為ActionFilter

發布時間:2021-03-03 17:56:53 來源:億速云 閱讀:132 作者:TREX 欄目:開發技術

這篇文章主要講解了“如何使用Yii里的特別行為ActionFilter”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“如何使用Yii里的特別行為ActionFilter”吧!

新建 app\filters\LoggingFilter 繼承 yii\base\ActionFilter

LoggingFilter 的功能: 在指定請求的 action 前后各記錄一條日志

<?php

namespace app\filters;

use yii\base\ActionFilter;

class LoggingFilter extends ActionFilter
{
 public function beforeAction($action)
 {
  parent::beforeAction($action);

  // To do something
  printf('This is a logging for %s\beforeAction.%s', $this->getActionId($action), PHP_EOL);

  return true;
 }

 public function afterAction($action, $result)
 {
  parent::afterAction($action, $result);

  // To do something
  printf('This is a logging for %s\afterAction.%s', $this->getActionId($action), PHP_EOL);

  return true;
 }
}

新建 app\controllers\SystemController

<?php

namespace app\controllers;

use app\filters\LoggingFilter;

class SystemController extends \yii\web\Controller
{
 public function behaviors()
 {
  parent::behaviors();

  return [
   'anchorAuth' => [
    'class' => LoggingFilter::className(),
    'only' => ['test', 'test-one'], // 僅對 'test'、'test-one' 生效
    'except' => ['test-one'], // 排除 'test-one'
   ],
  ];
 }

 public function actionTestOne()
 {
  printf('This is a testing for %s.%s', $this->getRoute(), PHP_EOL);
 }

 public function actionTestTwo()
 {
  printf('This is a testing for %s.%s', $this->getRoute(), PHP_EOL);
 }

 public function actionTest()
 {
  printf('This is a testing for %s.%s', $this->getRoute(), PHP_EOL);
 }
}

測試

請求 http://yii.test/index.php?r=system/test

This is a logging for test\beforeAction.
This is a testing for system/test.
This is a logging for test\afterAction.

請求 http://yii.test/index.php?r=system/test-one

This is a testing for system/test-one.

請求 http://yii.test/index.php?r=system/test-two

This is a testing for system/test-two.

總結

Yii 中的 ActionFilter(過濾器)相當于 Laravel 中的 Middleware(中間件),beforeAction 相當于前置中間件,afterAction 相當于后置中間件。

感謝各位的閱讀,以上就是“如何使用Yii里的特別行為ActionFilter”的內容了,經過本文的學習后,相信大家對如何使用Yii里的特別行為ActionFilter這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

汾阳市| 锡林郭勒盟| 德钦县| 斗六市| 洛扎县| 庆元县| 长阳| 大余县| 法库县| 牟定县| 凤城市| 苍山县| 乌鲁木齐县| 南阳市| 陆良县| 阜新| 靖西县| 卢龙县| 东阿县| 永新县| 钟祥市| 高青县| 钟山县| 芜湖县| 同江市| 奈曼旗| 东乡| 同仁县| 马关县| 南漳县| 达尔| 普格县| 梅河口市| 神池县| 仁寿县| 武夷山市| 洮南市| 土默特右旗| 澄江县| 开原市| 临朐县|