Yii初学

YII的 创建控制器
         1: 控制器 保证 控制器名+Controller 的文件名命名方式
         2: 控制器是一个类  类名与文件名保持一致  且都须要继承Controller 基础控制类
         3: 命名空间  全部的控制器都在  app\controllers 的命名空间下保存
         4: 方法名为 action+方法名的结构

YII 的访问

         1:  访问连接  为   /web/index.php?r=hello/index&id=111

                                          入口文件->  web/index.php
                                                          ?r= 控制器名/方法名&参数=参数值

           2: 请求组件的使用
                         注册组件  $request    = \YII::$app->request;
                           调用组件中的方法  $requset->get('参数名',若未接收到该参数则以此处填写值为默认值)  ;
                                                                  $requset->post('参数名',若未接收到该参数则以此处填写值为默认值)  ;
                           判断请求方式
                                                                $request->isGet;   返回值为布尔类型

          3:       响应组件的使用
                   注册组件  $response = \YII::$app->response;
                   调用组件的方法  
                              $response->statusCode = '404';     //设置状态码
          $response->headers->add('pragma','no-Cache');  //设置网页是否缓存               
             $response->headers->add('Location','http://www.baidu.com');   //设置header头跳转
                             包装后的跳转方法
                              $this->redirect('http://www.baidu.com');            //redirect跳转方法
                             $response->headers->add('content-disposition','attachment;filename="a.jeg"');   // header 头加参数   文件下载功能
                             包装后的文件下载方法
                             $response->sendFile("./index.php");   // 参数,文件路径  
       4:     session组件的使用
                   注册组件 $session = \YII::$app->session;
                                       $session->isActive;  //判断session 是否开启
                                       $session->open;    //开启session;
                                       $session->set('键','值');  //设置session 值
                                       $session->get('键');     //获取session值
                                       $session->remove('键');   //移除session值;
                                       $session['键'] = '值';    //ArrayAccess 接口   使session能够像数组同样操做;
                                        unset($session['键']);     //注销session值;
         5:  cookies 集合的使用
  
  
  
  
  1. use yii\web\Cookie; //声明Cookie值;
$cookies = \YII->$app->response; //注册响应组件$cookies_data = array('name'=>'user','value'=>'zhangsan'); //cookie 必须是键值对应$cookies->add(new Cookie($cookies_data)); //设置cookie值 $cookies->remove('user'); //移除cookie$cookies = \YII::$app->request->cookies; //请求组件中的cookies集合$cookies->getValue('cookie名','若不存在cookie名则返回此处值'); //获取cookie值
      
         6: 视图的建立
                  1> 建立控制器,  在Views 文件夹下 建立同名文件夹 ,例如 HelloController控制器 须要在Views 下建立 Hello文件夹
                  2> 建立方法,为不一样的方法分配不一样的视图,,,  默认视图文件应与 方法名一致,后缀为 .php   /例如 actionIndex() 方法 对应的视图文件为 index.php
                  3> 调用页面  $this->renderPartial('index');     //  randerPartial 局部渲染     调用index.php 视图  ,无需添加 .php后缀
        
         7:  给视图传递参数
              
  
  
  
  
<?phpnamespace app\controllers;use yii\web\Controller;// use YII;use yii\web\Cookie; //Cookie的命名空间class HelloController extends Controller{ public function actionIndex(){ $hello_str = "Hello God!"; $test_arr = array(1,2); //第一步 建立一个数组 $data = array(); //将须要传递给视图的数据放入数组中 $data['view_hello_str'] = $hello_str; //将数组传递给视图 $data['view_test_arr'] = $test_arr; return $this->renderPartial('index',$data); }}
              在index.php 视图文件中写入代码
   
   
   
   
<h1>hello world</h1><h1><? echo $view_hello_str;?></h1> //输出结果为 Hello God!<h1><? echo $view_test_arr[0];?></h1> //输出结果为 1
         8:  给视图文件传递参数之安全性
  
  
  
  
$hello_str = "Hello God!<script>alert(2);</script> "; //注入JS代码 正常状况下 js代码会被执行
        在index.php 视图文件中 引用 Html工具类  对显示数据进行过滤       
  
  
  
  
<?php use yii\helpers\Html; //引用Html 工具类 use yii\helpers\HtmlPurifier; //引用Html清理类 <h1><?=Html::encode($view_hello_str);?></h1>             //将会显示Hello God!<script>alert(2);</script> <h1><?=HtmlPurifier::process($view_hello_str);?></h1>     //将会显示 Hello God!
    9:  视图之布局文件
           1> 在views/layouts文件夹下 建立一个新的布局文件  ;  //例如 common.php 
           2> 在控制器中 声明属性    public $layout = 'common'   //声明使用哪一个布局文件
          3> 在方法中使用 $this->render('视图文件');  //render会将视图文件中的内容存入$content变量中 传入布局文件     
           4> 在布局文件中使用变量<?=$content?>   输出视图文件中的内容

      




















                        
         


相关文章
相关标签/搜索