牛骨文教育服务平台(让学习变的简单)
博文笔记

yii2利用response对象,返回指定数据格式

创建时间:2015-01-04 投稿人: 浏览次数:10842

当应用完成处理一个请求后, 会生成一个[[yiiwebResponse|response]]响应对象并发送给终端用户 响应对象包含的信息有HTTP状态码,HTTP头和主体内容等, 网页应用开发的最终目的本质上就是根据不同的请求构建这些响应对象。

在大多是情况下主要处理继承自 [[yiiwebResponse]] 的 response 应用组件, 尽管如此,Yii也允许你创建你自己的响应对象并发送给终端用户

首先在命名空间下引用Response类;use yiiwebResponse; 

1、发送http状态码

    Yii_>$app->response->statusCode;

发送http请求状态后,执行的状态操作如下:

  • [[yiiwebBadRequestHttpException]]: status code 400.
  • [[yiiwebConflictHttpException]]: status code 409.
  • [[yiiwebForbiddenHttpException]]: status code 403.
  • [[yiiwebGoneHttpException]]: status code 410.
  • [[yiiwebMethodNotAllowedHttpException]]: status code 405.
  • [[yiiwebNotAcceptableHttpException]]: status code 406.
  • [[yiiwebNotFoundHttpException]]: status code 404.
  • [[yiiwebServerErrorHttpException]]: status code 500.
  • [[yiiwebTooManyRequestsHttpException]]: status code 429.
  • [[yiiwebUnauthorizedHttpException]]: status code 401.
  • [[yiiwebUnsupportedMediaTypeHttpException]]: status code 415.

发送http 404状态码
        
  function actionCate($id){

             $data= Cate::find()->where(["cid" =>$id])->one();

 

             if(false==$data){
      Yii:$app->response->statusCode=404;
                   throw new NotFoundHttpException(404);
                   exit(0);
             }

}



发送headers请求【请求网页,字符集为utf-8】                 
$headers=Yii::$app->response->headers;
  $headers->add("Content-type","text/html;charset=utf-8");
  print_r($data->news);



2、发送指定格式json,xml,html,jsonp
function actionCate($id){

$data= Cate::find()->where(["cid" =>$id])->one();


if(false==$data){
Yii:$app->response->statusCode=404;
throw new NotFoundHttpException(404);
exit(0);
}




        //利用response,发送json格式数据

        $response=Yii::$app->response;
        $response->format=Response::FORMAT_JSON;
        $response->data=$data->news;

}



3、实现浏览器状态码跳转[301,302]
 
 Yii::$app->response->redirect("http://www.qq.com",301)->send();

    public function actionGo(){
	return $this->redirect("http://www.qq.com",301);
      }



4、实现文件的发送
Yii::$app->response->sendFile("/html/book/i.txt")->send();





声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。