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?>   輸出視圖文件中的內容

      




















                        
         


相關文章
相關標籤/搜索