校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > Yii2使用駝峰命名的形式訪問控制器(實例講解)

Yii2使用駝峰命名的形式訪問控制器(實例講解)

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

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

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

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

剛開始以為YII2中肯定有這樣的設(shè)置,然后就去google了下,發(fā)現(xiàn)都說不行,自己去看了下,果然,框架里面直接是寫死的:(源碼)\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,不過問題倒不大,這個代碼很容易理解,我們發(fā)現(xiàn),其實如果在這個源碼的基礎(chǔ)上再加上一個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響應(yīng)格式
  /*$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:酒店靜態(tài)數(shù)據(jù)接口
  */
 public function actiongetFullHotelInfo()
 {

 }

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

以上這篇Yii2使用駝峰命名的形式訪問控制器(實例講解)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

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

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

巨人網(wǎng)絡(luò)通訊聲明:本文標題《Yii2使用駝峰命名的形式訪問控制器(實例講解)》,本文關(guān)鍵詞  Yii2,使用,駝峰,命名,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Yii2使用駝峰命名的形式訪問控制器(實例講解)》相關(guān)的同類信息!
  • 本頁收集關(guān)于Yii2使用駝峰命名的形式訪問控制器(實例講解)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    懂色av中文字幕一区二区三区| 亚洲观看高清完整版在线观看| 欧美性做爰猛烈叫床潮| 久久精品国产色蜜蜜麻豆| 欧美不卡视频一区| 福利一区二区在线观看| 国产午夜精品久久久久久久| 91丨九色丨蝌蚪丨老版| 视频一区在线视频| 久久精品日产第一区二区三区高清版| 丰满少妇在线播放bd日韩电影| 亚洲午夜三级在线| 亚洲欧洲制服丝袜| 国产亚洲视频系列| 日韩一区二区在线看| 91同城在线观看| 亚洲一区二区三区精品在线| ㊣最新国产の精品bt伙计久久| 欧美狂野另类xxxxoooo| 成人免费福利片| 欧美日韩视频在线一区二区| 99久久精品一区二区| 97精品国产露脸对白| 蜜桃视频在线一区| 久久精品国产精品青草| 亚洲成人tv网| 亚洲国产精品一区二区久久恐怖片 | 91精品国产高清一区二区三区| 欧美一区二区久久| 国产精品18久久久久| 国产成人av电影免费在线观看| 亚洲免费观看视频| 国产女主播一区| 亚洲欧洲精品一区二区三区| 欧美熟乱第一页| 91美女视频网站| 日韩一二在线观看| 狠狠色丁香九九婷婷综合五月| 美国十次了思思久久精品导航| 成人性生交大片免费看视频在线 | 成人爽a毛片一区二区免费| 欧美精品第1页| 老司机精品视频导航| 91美女福利视频| 国产精品久久精品日日| 久久福利资源站| 欧洲精品在线观看| 久久你懂得1024| 精品一区二区久久| 日韩三级电影网址| 国产成人av电影在线| 日韩三级电影网址| 日本在线观看不卡视频| 91精品国产aⅴ一区二区| 亚洲mv在线观看| 欧美影视一区二区三区| 久久综合视频网| 成人18视频在线播放| 中文字幕欧美激情一区| 91久久精品一区二区三| 麻豆国产精品一区二区三区| 久久久99久久| 久久国产夜色精品鲁鲁99| 26uuu久久综合| 视频一区国产视频| 91丨九色丨蝌蚪丨老版| 91精品一区二区三区在线观看| 一区二区三区高清在线| 久久综合视频网| yourporn久久国产精品| 亚洲激情第一区| 国产精品综合av一区二区国产馆| 91美女片黄在线观看| 亚洲高清视频中文字幕| 日韩一二在线观看| 国内成人免费视频| 欧美特级限制片免费在线观看| 欧美精品免费视频| 国产一二三精品| 欧美高清在线精品一区| 在线观看av一区| 久久66热偷产精品| 日韩免费高清电影| 高清不卡在线观看| 国产精品青草久久| 欧美日韩精品电影| 久久99国产精品久久99果冻传媒| 国产精品午夜免费| 在线视频一区二区三区| 久久激五月天综合精品| 欧美精品一区二区三区蜜桃视频 | 国产精品久久久久久亚洲伦 | 91精品国产色综合久久不卡蜜臀| 717成人午夜免费福利电影| 久久久国产综合精品女国产盗摄| 国产精品久久久久久久久图文区| 亚洲电影一级黄| 亚洲男同性恋视频| 精品中文av资源站在线观看| 久久成人免费日本黄色| 成人国产电影网| 欧美日韩免费一区二区三区 | 欧美女孩性生活视频| 麻豆一区二区三区| 国产精品一区免费在线观看| 国产精品乱码一区二三区小蝌蚪| 日韩欧美国产一区二区三区| 色婷婷综合久久久| 91传媒视频在线播放| 午夜国产精品影院在线观看| 国产性天天综合网| www亚洲一区| 亚洲综合色区另类av| 粉嫩一区二区三区在线看| 日韩一二在线观看| 69堂国产成人免费视频| 91精品欧美一区二区三区综合在 | 亚洲一区在线看| 在线视频一区二区三| 久久99国产精品免费| 日韩午夜三级在线| 欧洲国内综合视频| 国产成人精品免费| 日韩视频免费观看高清完整版在线观看| 成人美女在线观看| 日韩美女视频在线| 亚洲国产日韩av| 亚洲免费在线观看视频| 日韩美女视频在线| 久久久久久久久久看片| 久久综合精品国产一区二区三区| 91在线小视频| av毛片久久久久**hd| 色天使久久综合网天天| 一本大道久久a久久精品综合| 国产在线精品一区二区| 高清在线观看日韩| 色婷婷久久一区二区三区麻豆| 最新国产成人在线观看| 17c精品麻豆一区二区免费| 久久久夜色精品亚洲| 欧美疯狂性受xxxxx喷水图片| 日韩精品一区二区三区中文不卡| 成人午夜电影小说| 精品亚洲国内自在自线福利| 成人99免费视频| 国产传媒日韩欧美成人| 国产精品1区2区3区在线观看| 国产在线观看一区二区| 91视频国产观看| 欧美一级午夜免费电影| 欧美一级日韩不卡播放免费| 宅男在线国产精品| 最新热久久免费视频| 日韩一二在线观看| 综合网在线视频| 成人黄色小视频| 91视频国产资源| 日韩av一区二区在线影视| 国产精品久久久一本精品| 亚洲国产精品一区二区久久| 无吗不卡中文字幕| 精品一区二区三区av| 99久久精品免费看国产免费软件| 在线免费不卡视频| 日韩一区二区不卡| 欧美mv日韩mv| ...xxx性欧美| 丁香六月久久综合狠狠色| 国产精品99久久久久久久vr| 精品视频色一区| 欧美日韩成人在线一区| eeuss鲁一区二区三区| 欧美精品乱码久久久久久按摩| 日韩视频免费观看高清完整版 | 亚洲综合一区二区精品导航| 亚州成人在线电影| 国产一区久久久| 成人精品国产福利| 日韩网站在线看片你懂的| 日韩欧美一区电影| 一区二区三区成人| 欧美日韩国产一级片| 国产精品一卡二卡| 色综合久久99| 成人影视亚洲图片在线| 日韩美女视频在线| 日本亚洲电影天堂| 精品欧美乱码久久久久久 | 91精品国产色综合久久不卡电影 | 日本高清不卡在线观看| 国产日韩成人精品| 午夜精品福利视频网站 | 日韩成人精品视频| 色av成人天堂桃色av| 亚洲图片另类小说| 国产一区 二区| 欧美日韩一区二区不卡| 久久久不卡网国产精品一区| 国产成人丝袜美腿|