亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > Yii2使用駝峰命名的形式訪問控制器的示例代碼

Yii2使用駝峰命名的形式訪問控制器的示例代碼

熱門標簽:外呼系統人工客服 400電話申請辦理 商丘外呼系統好處 全國各省地圖標注點 福建高頻外呼防封系統哪家好 網絡電話400申請 周口網絡回撥外呼系統 百度地圖標注類型是酒店 隨州銷售電銷機器人公司

yii2在使用的時候,訪問控制器的時候,如果控制器的名稱是駝峰命名法,那訪問的url中要改成橫線的形式。例如:

public function actionRoomUpdate()
{
//
}
//訪問的時候就要www.test.com/room-update這樣訪問

最近在做某渠道的直連的時候,他們提供的文檔上明確指出接口的形式:

剛開始以為YII2中肯定有這樣的設置,然后就去google了下,發現都說不行,自己去看了下,果然,框架里面直接是寫死的:(源碼)\vendor\yiisoft\yii2\base\Controller.php

/**
  * Creates an action based on the given action ID.
  * The method first checks if the action ID has been declared in [[actions()]]. If so,
  * it will use the configuration declared there to create the action object.
  * If not, it will look for a controller method whose name is in the format of `actionXyz`
  * where `Xyz` stands for the action ID. If found, an [[InlineAction]] representing that
  * method will be created and returned.
  * @param string $id the action ID.
  * @return Action the newly created action instance. Null if the ID doesn't resolve into any action.
  */
 public function createAction($id)
 {
  if ($id === '') {
   $id = $this->defaultAction;
  }
  $actionMap = $this->actions();
  if (isset($actionMap[$id])) {
   return Yii::createObject($actionMap[$id], [$id, $this]);
  } elseif (preg_match('/^[a-z0-9\\-_]+$/', $id)  strpos($id, '--') === false  trim($id, '-') === $id) {
   $methodName = 'action' . str_replace(' ', '', ucwords(implode(' ', explode('-', $id))));
   if (method_exists($this, $methodName)) {
    $method = new \ReflectionMethod($this, $methodName);
    if ($method->isPublic()  $method->getName() === $methodName) {
     return new InlineAction($id, $this, $methodName);
    }
   }
  }
  return null;
 }

這點有點low,不過問題倒不大,這個代碼很容易理解,我們發現,其實如果在這個源碼的基礎上再加上一個else就可以搞定,但是還是不建議直接改源碼。

由于我們的項目用的事yii2的advanced版本,并且里面有多個項目,還要保證其他項目使用正常(也就是個別的控制器才需要使用駝峰命名的方式訪問),這也容易:

我們可以寫個components處理:\common\components\zController.php

?php
/**
 * Created by PhpStorm.
 * User: Steven
 * Date: 2017/10/26
 * Time: 16:50
 */
namespace common\components;
use \yii\base\Controller;
use yii\base\InlineAction;
class zController extends Controller //這里需要繼承自\yii\base\Controller
{
 /**
  * Author:Steven
  * Desc:重寫路由,處理訪問控制器支持駝峰命名法
  * @param string $id
  * @return null|object|InlineAction
  */
 public function createAction($id)
 {
  if ($id === '') {
   $id = $this->defaultAction;
  }
  $actionMap = $this->actions();
  if (isset($actionMap[$id])) {
   return \Yii::createObject($actionMap[$id], [$id, $this]);
  } elseif (preg_match('/^[a-z0-9\\-_]+$/', $id)  strpos($id, '--') === false  trim($id, '-') === $id) {
   $methodName = 'action' . str_replace(' ', '', ucwords(implode(' ', explode('-', $id))));
   if (method_exists($this, $methodName)) {
    $method = new \ReflectionMethod($this, $methodName);
    if ($method->isPublic()  $method->getName() === $methodName) {
     return new InlineAction($id, $this, $methodName);
    }
   }
  } else {
   $methodName = 'action' . $id;
   if (method_exists($this, $methodName)) {
    $method = new \ReflectionMethod($this, $methodName);
    if ($method->isPublic()  $method->getName() === $methodName) {
     return new InlineAction($id, $this, $methodName);
    }
   }
  }
  return null;
 }
}

ok ,這就可以支持使用駝峰形式訪問了,當然這個的形式很多,也可以寫成一個控制器,然后其它控制器繼承這個控制器就行了,但是原理是一樣的

如果使用?  是需要用駝峰命名形式訪問的控制器中,繼承下這個zController就可以了,

?php
/**
 * Created by PhpStorm.
 * User: Steven
 * Date: 2017/10/18
 * Time: 15:57
 */
namespace backend\modules\hotel\controllers;
use yii\filters\AccessControl;
use yii\filters\ContentNegotiator;
use yii\web\Response;
use common\components\zController;
class QunarController extends zController
{
 public $enableCsrfValidation = false;
 public function behaviors()
 {
  $behaviors = parent::behaviors();
  unset($behaviors['authenticator']);
  $behaviors['corsFilter'] = [
   'class' => \yii\filters\Cors::className(),
   'cors' => [ // restrict access to
    'Access-Control-Request-Method' => ['*'], // Allow only POST and PUT methods
    'Access-Control-Request-Headers' => ['*'], // Allow only headers 'X-Wsse'
    'Access-Control-Allow-Credentials' => true, // Allow OPTIONS caching
    'Access-Control-Max-Age' => 3600, // Allow the X-Pagination-Current-Page header to be exposed to the browser.
    'Access-Control-Expose-Headers' => ['X-Pagination-Current-Page'],
   ],
  ];
  //配置ContentNegotiator支持JSON和XML響應格式
  /*$behaviors['contentNegotiator'] = [
   'class' => ContentNegotiator::className(), 'formats' => [
    'application/xml' => Response::FORMAT_XML
   ]
  ];*/
  $behaviors['access'] = [
   'class' => AccessControl::className(),
   'rules' => [
    [
     'ips' => ['119.254.26.*', //去哪兒IP訪問白名單
      '127.0.0.1','106.14.56.77','180.168.4.58' //蜘蛛及本地IP訪問白名單
     ], 'allow' => true,
    ],
   ],
  ];
  return $behaviors;
 }
}
?>

示例:

/**
  * Author:Steven
  * Desc:酒店靜態數據接口
  */
 public function actiongetFullHotelInfo()
 {
 }

訪問的時候url為www.test.com/getFullHotelInfo

總結

以上所述是小編給大家介紹的Yii2使用駝峰命名的形式訪問控制器,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

您可能感興趣的文章:
  • 詳解PHP的Yii框架中的Controller控制器
  • Yii2創建控制器(createController)方法詳解
  • yii2控制器Controller Ajax操作示例
  • Yii2使用$this->context獲取當前的Module、Controller(控制器)、Action等
  • Yii2設置默認控制器的兩種方法
  • Yii控制器中操作視圖js的方法
  • Yii控制器中filter過濾器用法分析
  • Yii2使用駝峰命名的形式訪問控制器(實例講解)
  • Yii2框架控制器、路由、Url生成操作示例
  • yii2 在控制器中驗證請求參數的使用方法
  • Yii 框架控制器創建使用及控制器響應操作示例

標簽:佛山 樂山 迪慶 六安 定西 南寧 十堰 海南

巨人網絡通訊聲明:本文標題《Yii2使用駝峰命名的形式訪問控制器的示例代碼》,本文關鍵詞  Yii2,使用,駝峰,命名,的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Yii2使用駝峰命名的形式訪問控制器的示例代碼》相關的同類信息!
  • 本頁收集關于Yii2使用駝峰命名的形式訪問控制器的示例代碼的相關信息資訊供網民參考!
  • 推薦文章
    久草免费在线观看| 免费一级片在线观看| 台湾毛片| 日本伦理片网站| 天天做日日干| 日韩免费在线视频| 成人影视在线播放| 黄视频网站免费观看| 九九热国产视频| 四虎影视库| 青青久在线视频| 日本在线播放一区| 国产一级强片在线观看| 免费毛片播放| 可以在线看黄的网站| 国产一区免费在线观看| 免费一级片在线观看| 精品国产三级a| 午夜欧美成人久久久久久| 免费一级片在线| 亚洲天堂免费| 精品视频在线观看视频免费视频| 国产成人精品影视| 一 级 黄 中国色 片| 精品久久久久久综合网| 99久久网站| 久久福利影视| 欧美另类videosbestsex久久| 日韩综合| 青青青草影院| 欧美日本免费| 精品视频免费在线| 久久精品大片| 国产一区二区福利久久| 国产精品1024在线永久免费| 日本免费乱人伦在线观看| 黄色短视频网站| 精品视频免费在线| 四虎影视久久| 国产亚洲男人的天堂在线观看| 日韩在线观看网站| 国产不卡高清在线观看视频| 日韩男人天堂| 久久99中文字幕| 国产伦理精品| 青青青草影院| 91麻豆国产| 美女免费精品高清毛片在线视 | 天堂网中文在线| 日韩中文字幕一区| 香蕉视频久久| 久久久久久久网| 欧美激情一区二区三区在线 | 免费国产在线观看| 精品国产一区二区三区国产馆| 青青青草影院 | 国产不卡在线播放| 黄视频网站免费看| 国产视频久久久| 99久久精品国产高清一区二区| 日韩男人天堂| 亚洲 男人 天堂| 精品视频一区二区| 精品久久久久久影院免费| 天天色色色| 一本高清在线| 久久精品成人一区二区三区| 日韩专区一区| 精品在线观看一区| 国产成人精品综合久久久| 国产视频一区二区在线播放| 欧美一级视频免费观看| 国产91精品系列在线观看| 亚欧成人乱码一区二区| 日本乱中文字幕系列 | 黄视频网站免费看| 999精品在线| 免费一级片在线观看| 美女免费精品高清毛片在线视 | 国产国语对白一级毛片| 中文字幕一区二区三区精彩视频| 黄视频网站在线看| 国产不卡高清在线观看视频| 亚洲女初尝黑人巨高清在线观看| 久草免费在线色站| 精品在线观看一区| 99色播| 999精品视频在线| 免费一级生活片| 韩国毛片基地| 青青久在线视频| 一级毛片视频在线观看| 99色视频| 午夜久久网| 日韩一级黄色| 香蕉视频三级| 久久国产精品永久免费网站| 欧美国产日韩一区二区三区| 亚洲第一页色| 国产不卡在线播放| 麻豆网站在线免费观看| 亚洲 男人 天堂| 精品视频免费在线| 午夜激情视频在线观看| 欧美a免费| 欧美电影免费| 天堂网中文字幕| 精品久久久久久中文字幕一区| 成人a大片在线观看| 日本在线不卡视频| 日日夜人人澡人人澡人人看免| 亚洲天堂免费观看| 国产视频一区在线| 精品国产一区二区三区久久久狼| 精品视频在线看| 成人免费高清视频| 亚洲女人国产香蕉久久精品| 中文字幕Aⅴ资源网| 欧美a免费| 精品国产三级a| 黄视频网站在线看| 成人a大片高清在线观看| 亚洲 欧美 91| 99热热久久| 成人a大片在线观看| 国产亚洲男人的天堂在线观看| 你懂的在线观看视频| 韩国三级香港三级日本三级la| 国产不卡高清在线观看视频| 韩国毛片免费大片| 亚洲 男人 天堂| 尤物视频网站在线观看| 黄色福利片| 午夜欧美成人久久久久久| 国产精品1024在线永久免费| 精品国产亚洲一区二区三区| 国产伦理精品| 四虎影视久久| 久久久成人影院| 韩国妈妈的朋友在线播放| 美女免费精品高清毛片在线视 | 免费一级生活片| 沈樵在线观看福利| 中文字幕一区二区三区 精品 | 国产精品自拍亚洲| 欧美激情一区二区三区在线 | 精品国产香蕉在线播出| 久久国产精品自由自在| 免费国产在线视频| 欧美激情一区二区三区在线| 亚久久伊人精品青青草原2020| 九九久久99综合一区二区| 欧美a免费| 精品国产一区二区三区精东影业 | 国产一区二区福利久久| 精品国产三级a| 欧美1区| 欧美激情一区二区三区视频 | 四虎论坛| 日本特黄特黄aaaaa大片| 999久久狠狠免费精品| 欧美大片aaaa一级毛片| 青青青草影院| 免费国产在线观看| 可以免费在线看黄的网站| 久久99中文字幕久久| 国产一区二区精品| 欧美电影免费| 精品视频在线观看一区二区三区| 四虎影视久久久| 91麻豆精品国产综合久久久| 精品视频在线观看一区二区| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 日本免费看视频| 精品视频在线看| 天天色色色| 国产成人欧美一区二区三区的| 欧美激情伊人| 黄色免费网站在线| 日韩专区在线播放| 国产91精品一区| 精品视频在线看| 国产欧美精品午夜在线播放| 一本高清在线| 国产a毛片| 日本伦理片网站| 国产网站麻豆精品视频| a级毛片免费观看网站| 美女免费黄网站| 免费国产在线视频| 国产一区免费在线观看| 欧美激情一区二区三区视频高清| 久久精品道一区二区三区| 日韩欧美一及在线播放| 久久精品大片| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 亚洲 男人 天堂| 超级乱淫伦动漫| 日韩在线观看视频免费| 成人高清视频免费观看|