# 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')); } ```