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

在Yii2框架中,响应对象用于构建HTTP响应,包括状态码、头信息和内容。通过`yiiwebResponse`可以方便地设置HTTP状态码,例如设置状态码为404将引发[[yiiwebNotFoundHttpException]]。此外,Yii2还提供了多种异常类来对应不同的错误状态码,简化了错误处理过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

首先在命名空间下引用Response类;use yii\web\Response; 

1、发送http状态码

    Yii_>$app->response->statusCode;

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

  • [[yii\web\BadRequestHttpException]]: status code 400.
  • [[yii\web\ConflictHttpException]]: status code 409.
  • [[yii\web\ForbiddenHttpException]]: status code 403.
  • [[yii\web\GoneHttpException]]: status code 410.
  • [[yii\web\MethodNotAllowedHttpException]]: status code 405.
  • [[yii\web\NotAcceptableHttpException]]: status code 406.
  • [[yii\web\NotFoundHttpException]]: status code 404.
  • [[yii\web\ServerErrorHttpException]]: status code 500.
  • [[yii\web\TooManyRequestsHttpException]]: status code 429.
  • [[yii\web\UnauthorizedHttpException]]: status code 401.
  • [[yii\web\UnsupportedMediaTypeHttpException]]: 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();





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值