# Yii控制器
总结Yii2控制器常用的一些操作,包括请求,和view层的配合。
[TOC]
## Yii控制器请求
### 获取GET请求的所有参数
```php
\Yii::$app->request->get();
```
### 获取GET请求参数`id`的值
```php
\Yii::$app->request->get('id');
```
### 获取POST请求的所有参数
```php
\Yii::$app->request->post();
```
### 获取POST请求参数`username`的值
```php
$username = \Yii::$app->request->post('username');
```
### 判断请求类型
```php
$is_get = \Yii::$app->request->isGet;
$is_put = \Yii::$app->request->isPut;
$is_post = \Yii::$app->request->isPost;
$is_ajax = \Yii::$app->request->isAjax;
$is_delete= \Yii::$app->request->isDelete;
$is_patch= \Yii::$app->request->isPatch;
$is_head = \Yii::$app->request->isHead;
...
```
### 获取当前用户IP地址
```
$ip_address = \Yii::$app->request->userIP;
```
## 控制器数据传送到视图的几种方式
### 使用函数传参方式传递数据
这是比较传统的方式传输数据到视图层,但在`renderPartial()`函数中传入数组的数据可能会比较多。
```php
public function actionIndex()
{
$user = ['userid'=>1,'username'=>'curder'];
$str = 'hello world';
return $this->renderPartial('index',['str'=>$str,'user'=>$user]);
}
```
### 使用数组方式传递数据
通过传递数据的形式减少第二个参数中数组的个数。
```php
public function actionIndex()
{
$data['user'] = ['userid'=>1,'username'=>'curder'];
$data['str'] = 'hello world';
return $this->renderPartial('index',$data);
}
```
### 使用php自带函数[compact](http://php.net/manual/zh/function.compact.php)传递数据
使用`compact`函数,在Laravel框架中用得比较多,也可以在Yii2中使用。
```php
public function actionIndex()
{
$user = ['userid'=>1,'username'=>'curder'];
$str = 'hello world';
return $this->renderPartial('index',compact('user','str'));
}
```
- 开始
- Yii2开发小技巧
- Yii2使用不同的方式进行邮件发送逻辑处理
- Yii2 Serialization of 'Closure' is not allowed 错误
- Yii创建应用
- Yii应用结构和流程
- Yii的路径别名
- Yii的请求
- Yii的响应
- Sessions 和 Cookies
- Yii自定义全局工具函数
- Yii2模型
- Yii2视图
- Yii2控制器
- 大数据节省内存处理
- 关联查询hasMany、hasOne
- Yii2 URL地址美化
- Yii2整合AdminLTE后台主题
- Yii2模型中的场景
- Yii2中的RBAC
- Yii2项目后台整合yii2-admin模块
- RBAC集成AdminLTE后台主题对菜单进行控制
- Yii2自定义Gii模板
- 修复AdminLTE引用外部字体文件导致访问变慢的情况
- Yii2事件简单使用
- Yii2模型事件
- Yii2使用GridView新增操作按钮
- Yii2向loyout模板文件中传值
- Yii2数据缓存
- Yii2缓存
- Yii2数据缓存之增删改查
- Yii2拓展
- Yii2日期时间插件-datetimepicker
- kartik-v/yii2-widget-fileinput上传插件