内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

如何使用YII中request和response-創(chuàng)新互聯(lián)

這篇文章主要介紹“YII中request和response的用法”,在日常操作中,相信很多人在YII中request和response的用法問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”YII中request和response的用法”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

孝感ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書(shū)銷(xiāo)售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書(shū)合作)期待與您的合作!

YII中提供了CHttpRequest,封裝了請(qǐng)求常用的方法。具體代碼如下:

class CHttpRequest extends CApplicationComponent
{
  public $enableCookieValidation=false;
  public $enableCsrfValidation=false;
  public $csrfTokenName='YII_CSRF_TOKEN';
  public $csrfCookie;
  private $_requestUri;
  private $_pathInfo;
  private $_scriptFile;
  private $_scriptUrl;
  private $_hostInfo;
  private $_baseUrl;
  private $_cookies;
  private $_preferredLanguage;
  private $_csrfToken;
  private $_deleteParams;
  private $_putParams;
  public function init()
  {
    parent::init();
    $this->normalizeRequest();
  }
  protected function normalizeRequest()
  {
    // normalize request
    if(function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc())
    {
      if(isset($_GET))
        $_GET=$this->stripSlashes($_GET);
      if(isset($_POST))
        $_POST=$this->stripSlashes($_POST);
      if(isset($_REQUEST))
        $_REQUEST=$this->stripSlashes($_REQUEST);
      if(isset($_COOKIE))
        $_COOKIE=$this->stripSlashes($_COOKIE);
    }
    if($this->enableCsrfValidation)
      Yii::app()->attachEventHandler('onBeginRequest',array($this,'validateCsrfToken'));
  }
  public function stripSlashes(&$data)
  {
    return is_array($data)?array_map(array($this,'stripSlashes'),$data):stripslashes($data);
  }
  public function getParam($name,$defaultValue=null)
  {
    return isset($_GET[$name]) ? $_GET[$name] : (isset($_POST[$name]) ? $_POST[$name] : $defaultValue);
  }
  public function getQuery($name,$defaultValue=null)
  {
    return isset($_GET[$name]) ? $_GET[$name] : $defaultValue;
  }
  public function getPost($name,$defaultValue=null)
  {
    return isset($_POST[$name]) ? $_POST[$name] : $defaultValue;
  }
  public function getDelete($name,$defaultValue=null)
  {
    if($this->_deleteParams===null)
      $this->_deleteParams=$this->getIsDeleteRequest() ? $this->getRestParams() : array();
    return isset($this->_deleteParams[$name]) ? $this->_deleteParams[$name] : $defaultValue;
  }
  public function getPut($name,$defaultValue=null)
  {
    if($this->_putParams===null)
      $this->_putParams=$this->getIsPutRequest() ? $this->getRestParams() : array();
    return isset($this->_putParams[$name]) ? $this->_putParams[$name] : $defaultValue;
  }
  protected function getRestParams()
  {
    $result=array();
    if(function_exists('mb_parse_str'))
      mb_parse_str(file_get_contents('php://input'), $result);
    else
      parse_str(file_get_contents('php://input'), $result);
    return $result;
  }
  public function getUrl()
  {
    return $this->getRequestUri();
  }
  public function getHostInfo($schema='')
  {
    if($this->_hostInfo===null)
    {
      if($secure=$this->getIsSecureConnection())
        $http='https';
      else
        $http='http';
      if(isset($_SERVER['HTTP_HOST']))
        $this->_hostInfo=$http.'://'.$_SERVER['HTTP_HOST'];
      else
      {
        $this->_hostInfo=$http.'://'.$_SERVER['SERVER_NAME'];
        $port=$secure ? $this->getSecurePort() : $this->getPort();
        if(($port!==80 && !$secure) || ($port!==443 && $secure))
          $this->_hostInfo.=':'.$port;
      }
    }
    if($schema!=='')
    {
      $secure=$this->getIsSecureConnection();
      if($secure && $schema==='https' || !$secure && $schema==='http')
        return $this->_hostInfo;
      $port=$schema==='https' ? $this->getSecurePort() : $this->getPort();
      if($port!==80 && $schema==='http' || $port!==443 && $schema==='https')
        $port=':'.$port;
      else
        $port='';
      $pos=strpos($this->_hostInfo,':');
      return $schema.substr($this->_hostInfo,$pos,strcspn($this->_hostInfo,':',$pos+1)+1).$port;
    }
    else
      return $this->_hostInfo;
  }
  public function setHostInfo($value)
  {
    $this->_hostInfo=rtrim($value,'/');
  }
  public function getBaseUrl($absolute=false)
  {
    if($this->_baseUrl===null)
      $this->_baseUrl=rtrim(dirname($this->getScriptUrl()),'\\/');
    return $absolute ? $this->getHostInfo() . $this->_baseUrl : $this->_baseUrl;
  }
  public function setBaseUrl($value)
  {
    $this->_baseUrl=$value;
  }
  public function getScriptUrl()
  {
    if($this->_scriptUrl===null)
    {
      $scriptName=basename($_SERVER['SCRIPT_FILENAME']);
      if(basename($_SERVER['SCRIPT_NAME'])===$scriptName)
        $this->_scriptUrl=$_SERVER['SCRIPT_NAME'];
      else if(basename($_SERVER['PHP_SELF'])===$scriptName)
        $this->_scriptUrl=$_SERVER['PHP_SELF'];
      else if(isset($_SERVER['ORIG_SCRIPT_NAME']) && basename($_SERVER['ORIG_SCRIPT_NAME'])===$scriptName)
        $this->_scriptUrl=$_SERVER['ORIG_SCRIPT_NAME'];
      else if(($pos=strpos($_SERVER['PHP_SELF'],'/'.$scriptName))!==false)
        $this->_scriptUrl=substr($_SERVER['SCRIPT_NAME'],0,$pos).'/'.$scriptName;
      else if(isset($_SERVER['DOCUMENT_ROOT']) && strpos($_SERVER['SCRIPT_FILENAME'],$_SERVER['DOCUMENT_ROOT'])===0)
        $this->_scriptUrl=str_replace('\\','/',str_replace($_SERVER['DOCUMENT_ROOT'],'',$_SERVER['SCRIPT_FILENAME']));
      else
        throw new CException(Yii::t('yii','CHttpRequest is unable to determine the entry script URL.'));
    }
    return $this->_scriptUrl;
  }
  public function setScriptUrl($value)
  {
    $this->_scriptUrl='/'.trim($value,'/');
  }
  public function getPathInfo()
  {
    if($this->_pathInfo===null)
    {
      $pathInfo=$this->getRequestUri();
      if(($pos=strpos($pathInfo,'?'))!==false)
        $pathInfo=substr($pathInfo,0,$pos);
      $pathInfo=urldecode($pathInfo);
      $scriptUrl=$this->getScriptUrl();
      $baseUrl=$this->getBaseUrl();
      if(strpos($pathInfo,$scriptUrl)===0)
        $pathInfo=substr($pathInfo,strlen($scriptUrl));
      else if($baseUrl==='' || strpos($pathInfo,$baseUrl)===0)
        $pathInfo=substr($pathInfo,strlen($baseUrl));
      else if(strpos($_SERVER['PHP_SELF'],$scriptUrl)===0)
        $pathInfo=substr($_SERVER['PHP_SELF'],strlen($scriptUrl));
      else
        throw new CException(Yii::t('yii','CHttpRequest is unable to determine the path info of the request.'));
      $this->_pathInfo=trim($pathInfo,'/');
    }
    return $this->_pathInfo;
  }
  public function getRequestUri()
  {
    if($this->_requestUri===null)
    {
      if(isset($_SERVER['HTTP_X_REWRITE_URL'])) // IIS
        $this->_requestUri=$_SERVER['HTTP_X_REWRITE_URL'];
      else if(isset($_SERVER['REQUEST_URI']))
      {
        $this->_requestUri=$_SERVER['REQUEST_URI'];
        if(isset($_SERVER['HTTP_HOST']))
        {
          if(strpos($this->_requestUri,$_SERVER['HTTP_HOST'])!==false)
            $this->_requestUri=preg_replace('/^\w+:\/\/[^\/]+/','',$this->_requestUri);
        }
        else
          $this->_requestUri=preg_replace('/^(http|https):\/\/[^\/]+/i','',$this->_requestUri);
      }
      else if(isset($_SERVER['ORIG_PATH_INFO'])) // IIS 5.0 CGI
      {
        $this->_requestUri=$_SERVER['ORIG_PATH_INFO'];
        if(!empty($_SERVER['QUERY_STRING']))
          $this->_requestUri.='?'.$_SERVER['QUERY_STRING'];
      }
      else
        throw new CException(Yii::t('yii','CHttpRequest is unable to determine the request URI.'));
    }
    return $this->_requestUri;
  }
  public function getQueryString()
  {
    return isset($_SERVER['QUERY_STRING'])?$_SERVER['QUERY_STRING']:'';
  }
  public function getIsSecureConnection()
  {
    return isset($_SERVER['HTTPS']) && !strcasecmp($_SERVER['HTTPS'],'on');
  }
  public function getRequestType()
  {
    return strtoupper(isset($_SERVER['REQUEST_METHOD'])?$_SERVER['REQUEST_METHOD']:'GET');
  }
  public function getIsPostRequest()
  {
    return isset($_SERVER['REQUEST_METHOD']) && !strcasecmp($_SERVER['REQUEST_METHOD'],'POST');
  }
  public function getIsDeleteRequest()
  {
    return isset($_SERVER['REQUEST_METHOD']) && !strcasecmp($_SERVER['REQUEST_METHOD'],'DELETE');
  }
  public function getIsPutRequest()
  {
    return isset($_SERVER['REQUEST_METHOD']) && !strcasecmp($_SERVER['REQUEST_METHOD'],'PUT');
  }
  public function getIsAjaxRequest()
  {
    return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH']==='XMLHttpRequest';
  }
  public function getServerName()
  {
    return $_SERVER['SERVER_NAME'];
  }
  public function getServerPort()
  {
    return $_SERVER['SERVER_PORT'];
  }
  public function getUrlReferrer()
  {
    return isset($_SERVER['HTTP_REFERER'])?$_SERVER['HTTP_REFERER']:null;
  }
  public function getUserAgent()
  {
    return isset($_SERVER['HTTP_USER_AGENT'])?$_SERVER['HTTP_USER_AGENT']:null;
  }
  public function getUserHostAddress()
  {
    return isset($_SERVER['REMOTE_ADDR'])?$_SERVER['REMOTE_ADDR']:'127.0.0.1';
  }
  public function getUserHost()
  {
    return isset($_SERVER['REMOTE_HOST'])?$_SERVER['REMOTE_HOST']:null;
  }
  public function getScriptFile()
  {
    if($this->_scriptFile!==null)
      return $this->_scriptFile;
    else
      return $this->_scriptFile=realpath($_SERVER['SCRIPT_FILENAME']);
  }
  public function getBrowser($userAgent=null)
  {
    return get_browser($userAgent,true);
  }
  public function getAcceptTypes()
  {
    return isset($_SERVER['HTTP_ACCEPT'])?$_SERVER['HTTP_ACCEPT']:null;
  }
  private $_port;
  public function getPort()
  {
    if($this->_port===null)
      $this->_port=!$this->getIsSecureConnection() && isset($_SERVER['SERVER_PORT']) ? (int)$_SERVER['SERVER_PORT'] : 80;
    return $this->_port;
  }
  public function setPort($value)
  {
    $this->_port=(int)$value;
    $this->_hostInfo=null;
  }
  private $_securePort;
  public function getSecurePort()
  {
    if($this->_securePort===null)
      $this->_securePort=$this->getIsSecureConnection() && isset($_SERVER['SERVER_PORT']) ? (int)$_SERVER['SERVER_PORT'] : 443;
    return $this->_securePort;
  }
  public function setSecurePort($value)
  {
    $this->_securePort=(int)$value;
    $this->_hostInfo=null;
  }
  public function getCookies()
  {
    if($this->_cookies!==null)
      return $this->_cookies;
    else
      return $this->_cookies=new CCookieCollection($this);
  }
  public function redirect($url,$terminate=true,$statusCode=302)
  {
    if(strpos($url,'/')===0)
      $url=$this->getHostInfo().$url;
    header('Location: '.$url, true, $statusCode);
    if($terminate)
      Yii::app()->end();
  }
  public function getPreferredLanguage()
  {
    if($this->_preferredLanguage===null)
    {
      if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) && ($n=preg_match_all('/([\w\-_]+)\s*(;\s*q\s*=\s*(\d*\.\d*))?/',$_SERVER['HTTP_ACCEPT_LANGUAGE'],$matches))>0)
      {
        $languages=array();
        for($i=0;$i<$n;++$i)
          $languages[$matches[1][$i]]=empty($matches[3][$i]) ? 1.0 : floatval($matches[3][$i]);
        arsort($languages);
        foreach($languages as $language=>$pref)
          return $this->_preferredLanguage=CLocale::getCanonicalID($language);
      }
      return $this->_preferredLanguage=false;
    }
    return $this->_preferredLanguage;
  }
  public function sendFile($fileName,$content,$mimeType=null,$terminate=true)
  {
    if($mimeType===null)
    {
      if(($mimeType=CFileHelper::getMimeTypeByExtension($fileName))===null)
        $mimeType='text/plain';
    }
    header('Pragma: public');
    header('Expires: 0');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header("Content-type: $mimeType");
    if(ini_get("output_handler")=='')
      header('Content-Length: '.(function_exists('mb_strlen') ? mb_strlen($content,'8bit') : strlen($content)));
    header("Content-Disposition: attachment; filename=\"$fileName\"");
    header('Content-Transfer-Encoding: binary');
    if($terminate)
    {
      // clean up the application first because the file downloading could take long time
      // which may cause timeout of some resources (such as DB connection)
      Yii::app()->end(0,false);
      echo $content;
      exit(0);
    }
    else
      echo $content;
  }
  public function xSendFile($filePath, $options=array())
  {
    if(!is_file($filePath))
      return false;
    if(!isset($options['saveName']))
      $options['saveName']=basename($filePath);
    if(!isset($options['mimeType']))
    {
      if(($options['mimeType']=CFileHelper::getMimeTypeByExtension($filePath))===null)
        $options['mimeType']='text/plain';
    }
    if(!isset($options['xHeader']))
      $options['xHeader']='X-Sendfile';
    header('Content-type: '.$options['mimeType']);
    header('Content-Disposition: attachment; filename="'.$options['saveName'].'"');
    header(trim($options['xHeader']).': '.$filePath);
    if(!isset($options['terminate']) || $options['terminate'])
      Yii::app()->end();
    return true;
  }
  public function getCsrfToken()
  {
    if($this->_csrfToken===null)
    {
      $cookie=$this->getCookies()->itemAt($this->csrfTokenName);
      if(!$cookie || ($this->_csrfToken=$cookie->value)==null)
      {
        $cookie=$this->createCsrfCookie();
        $this->_csrfToken=$cookie->value;
        $this->getCookies()->add($cookie->name,$cookie);
      }
    }
    return $this->_csrfToken;
  }
  protected function createCsrfCookie()
  {
    $cookie=new CHttpCookie($this->csrfTokenName,sha1(uniqid(mt_rand(),true)));
    if(is_array($this->csrfCookie))
    {
      foreach($this->csrfCookie as $name=>$value)
        $cookie->$name=$value;
    }
    return $cookie;
  }
  public function validateCsrfToken($event)
  {
    if($this->getIsPostRequest())
    {
      // only validate POST requests
      $cookies=$this->getCookies();
      if($cookies->contains($this->csrfTokenName) && isset($_POST[$this->csrfTokenName]))
      {
        $tokenFromCookie=$cookies->itemAt($this->csrfTokenName)->value;
        $tokenFromPost=$_POST[$this->csrfTokenName];
        $valid=$tokenFromCookie===$tokenFromPost;
      }
      else
        $valid=false;
      if(!$valid)
        throw new CHttpException(400,Yii::t('yii','The CSRF token could not be verified.'));
    }
  }
}

request操作的相關(guān)方法,一目了然。

public function init()
{
  parent::init();
  $this->normalizeRequest();
}
protected function normalizeRequest()
{
  // normalize request
  if(function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc())
  {
    if(isset($_GET))
      $_GET=$this->stripSlashes($_GET);
    if(isset($_POST))
      $_POST=$this->stripSlashes($_POST);
    if(isset($_REQUEST))
      $_REQUEST=$this->stripSlashes($_REQUEST);
    if(isset($_COOKIE))
      $_COOKIE=$this->stripSlashes($_COOKIE);
  }
  if($this->enableCsrfValidation)
    Yii::app()->attachEventHandler('onBeginRequest',array($this,'validateCsrfToken'));
}
public function stripSlashes(&$data)
{
  return is_array($data)?array_map(array($this,'stripSlashes'),$data):stripslashes($data);
}

可以看到y(tǒng)ii對(duì)$_GET\$_POST\$_REQUEST\$_COOKIE進(jìn)行了必要的過(guò)濾處理,所以可以放心的使用數(shù)據(jù)。

常用的有如下方法:

獲取get參數(shù)

public function getParam($name,$defaultValue=null)

獲取get參數(shù)

public function getQuery($name,$defaultValue=null)

獲取post數(shù)據(jù)

public function getPost($name,$defaultValue=null)

獲取請(qǐng)求的url

public function getUrl()

獲取主機(jī)信息

public function getHostInfo($schema='')

設(shè)置

public function setHostInfo($value)

獲取根目錄

public function getBaseUrl($absolute=false)

獲取當(dāng)前url

public function getScriptUrl()

獲取請(qǐng)求的url

public function getRequestUri()

獲取querystring

public function getQueryString()

判斷是否是https

public function getIsSecureConnection()

獲取請(qǐng)求類型

public function getRequestType()

是否是post請(qǐng)求

public function getIsPostRequest()

是否是ajax請(qǐng)求

public function getIsAjaxRequest()

獲取服務(wù)器名稱

public function getServerName()

獲取服務(wù)端口

public function getServerPort()

獲取引用路徑

public function getUrlReferrer()

獲取用戶ip地址

public function getUserHostAddress()

獲取用戶主機(jī)名稱

public function getUserHost()

獲取執(zhí)行腳本名稱

public function getScriptFile()

獲取cookie

public function getCookies()

重定向

public function redirect($url,$terminate=true,$statusCode=302)

設(shè)置下載文件頭

public function sendFile($fileName,$content,$mimeType=null,$terminate=true)
{
if($mimeType===null)
{
if(($mimeType=CFileHelper::getMimeTypeByExtension($fileName))===null)
$mimeType='text/plain';
}
header('Pragma: public');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header("Content-type: $mimeType");
if(ini_get("output_handler")=='')
header('Content-Length: '.(function_exists('mb_strlen') ? mb_strlen($content,'8bit') : strlen($content)));
header("Content-Disposition: attachment; filename=\"$fileName\"");
header('Content-Transfer-Encoding: binary');
if($terminate)
{
// clean up the application first because the file downloading could take long time
// which may cause timeout of some resources (such as DB connection)
Yii::app()->end(0,false);
echo $content;
exit(0);
}
else
echo $content;
}
public function xSendFile($filePath, $options=array())
{
if(!is_file($filePath))
return false;
if(!isset($options['saveName']))
$options['saveName']=basename($filePath);
if(!isset($options['mimeType']))
{
if(($options['mimeType']=CFileHelper::getMimeTypeByExtension($filePath))===null)
$options['mimeType']='text/plain';
}
if(!isset($options['xHeader']))
$options['xHeader']='X-Sendfile';
header('Content-type: '.$options['mimeType']);
header('Content-Disposition: attachment; filename="'.$options['saveName'].'"');
header(trim($options['xHeader']).': '.$filePath);
if(!isset($options['terminate']) || $options['terminate'])
Yii::app()->end();
return true;
}

為了防止csrf,yii提供了相應(yīng)的方法

CSRF(Cross-site request forgery),中文名稱:跨站請(qǐng)求偽造,也被稱為:one click attack/session riding,縮寫(xiě)為:CSRF/XSRF。
《CSRF的攻擊方式詳解 黑客必備知識(shí)》

public function getCsrfToken()
{
if($this->_csrfToken===null)
{
$cookie=$this->getCookies()->itemAt($this->csrfTokenName);
if(!$cookie || ($this->_csrfToken=$cookie->value)==null)
{
$cookie=$this->createCsrfCookie();
$this->_csrfToken=$cookie->value;
$this->getCookies()->add($cookie->name,$cookie);
}
}
return $this->_csrfToken;
}
protected function createCsrfCookie()
{
$cookie=new CHttpCookie($this->csrfTokenName,sha1(uniqid(mt_rand(),true)));
if(is_array($this->csrfCookie))
{
foreach($this->csrfCookie as $name=>$value)
$cookie->$name=$value;
}
return $cookie;
}
public function validateCsrfToken($event)
{
if($this->getIsPostRequest())
{
// only validate POST requests
$cookies=$this->getCookies();
if($cookies->contains($this->csrfTokenName) && isset($_POST[$this->csrfTokenName]))
{
$tokenFromCookie=$cookies->itemAt($this->csrfTokenName)->value;
$tokenFromPost=$_POST[$this->csrfTokenName];
$valid=$tokenFromCookie===$tokenFromPost;
}
else
$valid=false;
if(!$valid)
throw new CHttpException(400,Yii::t('yii','The CSRF token could not be verified.'));
}
}

對(duì)于$_GET的使用,不僅僅可以使用$_GET和以上提供的相關(guān)方法,在action中,可以綁定到action的方法參數(shù)。

http://www.yiiframework.com/doc/guide/1.1/zh_cn/basics.controller

這里就一并羅列官方給出的說(shuō)明。

從版本 1.1.4 開(kāi)始,Yii 提供了對(duì)自動(dòng)動(dòng)作參數(shù)綁定的支持。 就是說(shuō),控制器動(dòng)作可以定義命名的參數(shù),參數(shù)的值將由 Yii 自動(dòng)從 $_GET 填充。

為了詳細(xì)說(shuō)明此功能,假設(shè)我們需要為 PostController 寫(xiě)一個(gè) create 動(dòng)作。此動(dòng)作需要兩個(gè)參數(shù):

category: 一個(gè)整數(shù),代表帖子(post)要發(fā)表在的那個(gè)分類的ID。
language: 一個(gè)字符串,代表帖子所使用的語(yǔ)言代碼。
從 $_GET 中提取參數(shù)時(shí),我們可以不再下面這種無(wú)聊的代碼了:

class PostController extends CController
{
  public function actionCreate()
  {
    if(isset($_GET['category']))
      $category=(int)$_GET['category'];
    else
      throw new CHttpException(404,'invalid request');
    if(isset($_GET['language']))
      $language=$_GET['language'];
    else
      $language='en';
    // ... fun code starts here ...
  }
}

現(xiàn)在使用動(dòng)作參數(shù)功能,我們可以更輕松的完成任務(wù):

class PostController extends CController
{
  public function actionCreate($category, $language='en')
  {
    $category=(int)$category;
    // ... fun code starts here ...
  }
}

注意我們?cè)趧?dòng)作方法 actionCreate 中添加了兩個(gè)參數(shù)。 這些參數(shù)的名字必須和我們想要從 $_GET 中提取的名字一致。 當(dāng)用戶沒(méi)有在請(qǐng)求中指定 $language 參數(shù)時(shí),這個(gè)參數(shù)會(huì)使用默認(rèn)值 en 。 由于 $category 沒(méi)有默認(rèn)值,如果用戶沒(méi)有在 $_GET 中提供 category 參數(shù), 將會(huì)自動(dòng)拋出一個(gè) CHttpException (錯(cuò)誤代碼 400) 異常。 Starting from version 1.1.5, Yii also supports array type detection for action parameters. This is done by PHP type hinting using the syntax like the following:

class PostController extends CController
{
  public function actionCreate(array $categories)
  {
    // Yii will make sure $categories be an array
  }
}

That is, we add the keyword array in front of $categories in the method parameter declaration. By doing so, if $_GET['categories'] is a simple string, it will be converted into an array consisting of that string.

Note: If a parameter is declared without the array type hint, it means the parameter must be a scalar (i.e., not an array). In this case, passing in an array parameter via $_GET would cause an HTTP exception.

request的使用你只要保持和以前在php中的使用方式一樣,在yii中是不會(huì)出錯(cuò)的

到此,關(guān)于“YII中request和response的用法”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

當(dāng)前名稱:如何使用YII中request和response-創(chuàng)新互聯(lián)
新聞來(lái)源:http://www.rwnh.cn/article44/csocee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、網(wǎng)站設(shè)計(jì)公司、網(wǎng)站制作、網(wǎng)站內(nèi)鏈、建站公司定制開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站
兖州市| 罗源县| 塔河县| 遵义市| 休宁县| 河西区| 浙江省| 江达县| 获嘉县| 巴彦淖尔市| 武陟县| 攀枝花市| 普兰店市| 策勒县| 湟源县| 裕民县| 景泰县| 西乌珠穆沁旗| 沙田区| 抚州市| 崇州市| 天祝| 临西县| 沾益县| 土默特左旗| 海城市| 龙江县| 四川省| 黑龙江省| 云龙县| 青川县| 鹿邑县| 道孚县| 新晃| 永济市| 边坝县| 资中县| 泗水县| 卢龙县| 祁连县| 马公市|