yii2—控制器之resquest,response,session,cookie

本文深入探讨了Yii框架中关键的控制器、请求、响应、session和cookie组件的使用方法及功能,通过实例展示了如何处理HTTP请求、响应、会话管理和客户端信息读取。

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

一 控制器访问

http://127.0.0.1/yii/web/index.php?r=hello/index

<?php

namespace app\controllers;

use yii\web\Controller;
 
class HelloController extends Controller
 
{
 
    public function actionIndex(){  // 操作必须以action开头
     
        return 'hello world';
     
    }
 
}
 
?>

二 组件

1 request(请求组件)

$request = Yii::$app->request;   // 请求组件
 
if($request->isGet){ }        // 判断请求方式是否是get
 
if($request->isAjax){ }            //  判断请求方式是否是AJAX 请求
 
echo $request->userIp.'<br>';     // 获取请求用户ip
 
echo $request->request->userHost;  // 获取请求用户主机
 
echo $request->get('id').'<br>';  // 获取get请求参数
 
echo $request->post('id').'<br>';   // 获取post请求参数
 
echo $request->bodyParams;          // 返回所有参数
 
echo $request->getBodyParam('id');  // 返回参数
 
echo $request->url;                 // 此 URL 不包括主机信息部分。

更多见 >>>  请求处理

2 response(响应组件)

$response = Yii::$app->response;  // 响应组件 
 
$response->statusCode = 200;          // 设置响应状态码
 
echo $response->statusCode;      // 获取响应状态码
 
// 添加 设置 删除 header中的参数
 
$response->headers->add('pragma','no-cache');
 
$response->headers->set('pragma','no-cache');
 
$response->headers->remove('pragma');
 
// 跳转
 
$response->headers->add('location','http://www.baidu.com');
 
$response->redirect('http://www.baidu.com',302);
 
// 文件下载
 
$response->headers->add('content-disposition','attachment;filename="a.jpg"');
 
$response->sendFile('./test.txt');

更多见 >>> 响应处理

3 session组件

$session = Yii::$app->session;    // session组件
 
if($session->isActive){}         //判断session是否开启
 
$session->open();                //开启
 
$session->set('user','张三');    //设置
 
echo $session->get('user');     //获取
 
$session->remove('user');        //删除
 
$session['user'] = '张三';     //设置
 
echo $session->get('user');

4 cookie操作

// cookie加密是使用basic/config/web.php中的cookieValidationKey配置字符串
 
// 使用response组件设置
 
$cookies = $response->cookies;
 
$cookie_data = array('name'=>'user','value'=>'zhangsan');
 
$cookies->add(new Cookie($cookie_data));  // 这里要 use yii\web\Cookie;
 
$cookies->remove('user');
 
// 使用request组件读取
 
$cookies = $request->cookies;
 
echo $cookies->getValue('user');

更多见 >>> sessions-cookies

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值