關於Yii框架的基礎知識

        第一次寫博文,也不知道怎麼寫,不太熟悉,帶小夥伴學習同樣我平常使用的Yii框架。php

        PHP中的開發框架有不少,好比:ThinkPHP、Yii、CI、Laravel、Phalcon等。如今流行度最高的是Laravel框架,鑑於公司用的是Yii框架,就講一講Yii框架的基礎操做。但願寫好的就借鑑,寫的很差的能夠向我提出建議。css

   1.Yii框架是一個有MVC思想的框架,Model、View、Controller。該框架由美籍華人開發,相對於其餘框架來講是一個重量級的框架。Yii框架有腳手架功能,能夠自動生成目錄結構(但通常狀況下我都不用)。web

 


 

   2.腳手架功能 數據庫

      利用Yii腳手架功能,生成目錄結構數組

    (1)、打開命令提示符窗口(Win7以管理員方式打開)app

    (2)、切換到項目中的framework文件夾裏框架

    (3)、輸入以下命令,生成目錄yii

       yiic webapp ../appwebapp

      錯誤提示:"php.exe" 不是內部或外部命令,函數

      解決辦法:將php的安裝目錄,配置到系統的path環境變量中

       path環境變量的位置:個人電腦->屬性->高級->環境變量->系統變量->Path

         變量名:Path

        變量值:adsfasdfasdfas;D:\php5.4

        注意:必須把命令提示符窗關閉,從新打開

 


 

     3.Yii的項目目錄

app--------------------應用程序目錄

  assets---------------第三方資源包*******

  css------------------樣式表*******

  images---------------圖片*******

  protected------------應用程序

    commands-----------系統命令

    components---------組件目錄(自定義類)*******

      Controller.php---全部控制器的父類

    config-------------配置文件夾*******

      main.php---------全局配置文件

    controllers--------控制器*******

    data---------------數據庫腳本*******

    extensions---------擴展類

    messages-----------翻譯過的信息

    migrations---------數據庫移植文件

    models-------------模型*******

    runtime------------運行時

    views--------------視圖*******

      layouts----------佈局文件夾

  themes---------------主題目錄

  index.php------------入口文件

framework--------------yii資源包

 


 

       4.命名規則

        控制器的命名規則

         (1)、必須採用大駝峯的命名規則

         (2)、必須以Controller來結尾

             IndexController.php

             LoginController.php      

       控制器中方法的命名

          (1)、必須採用小駝峯的命名規則

          (2)、必須以action來開頭

              actionIndex()

              actionAdd()

              actionInsert()

              actionLogin()

       模型的命名規則

           (1)、必須採用大駝峯的命名規則

           (2)、必須以表名來命名

               BbsInfo.php

               Reviews.php

 


 

     5.修改配置文件

            (1)、設置默認控制器

              "defaultController"=>"控制器/方法",

              "defaultController"=>"index/index",

            (2)、設置url的路由,開啓pathinfo

   /*

     "urlManager"=>array(

        ......

     ),

   */

   去掉上邊代碼的註釋

(3)、設置數據庫的配置信息

   /*

     "db"=>array(

        ......

     ),

   */

   去掉上邊代碼的註釋,並修改數據庫信息

 


 

6.控制器顯示指定的視圖

         (1)、顯示指定的視圖,但不調用佈局文件

                $this->renderPartial("視圖名");

                $this->renderPartial("視圖名",array(名=>值,名=>值...));

               注:array數組是將值傳給視圖

 

         (2)、顯示指定的視圖,但調用佈局文件

 

               $this->render("視圖名");

 

                $this->render("視圖名",array(名=>值,名=>值...));

           (3)可使用include包含頁面

                 include($this->viewpath ."/index.php");

 


 

      7.數據庫操做

            (1)、查詢多條記錄,返回:二維數組

               $result = $model->findAll();

               $result = $model->findAll("條件");

               $result = $model->findAll(array(

                        "condition"=>"條件",

                        "order"=>"排序",

                        "offset"=>起始值,

                        "limit"=>條數

                 ));

               $result = $model->findAllBySql("select語句");

 

(2)、刪除記錄,返回:受影響的行數

 

   $result = $model->deleteAll();

 

   $result = $model->deleteAll("條件");

 

   $result = $model->deleteByPk(主鍵);

 

(3)、查詢一條記錄,返回:一維關聯數組

 

   $result = $model->find();

 

   $result = $model->find(條件);

 

   $result = $model->findByPk(主鍵);

 

   $result = $model->findBySql("select語句");

 

(4)、修改記錄,返回:受影響的行數

 

   $result = $model->updateAll(一維關聯數組);//修改表中的全部記錄

 

   $result = $model->updateAll(一維關聯數組,條件);//改符合條件的記錄

 

   $result = $model->updateByPk(主鍵,一維關聯數組);

 

(5)、添加記錄,返回:受影響的行數

 

   $model->字段名 = 字段值;

 

   $model->字段名 = 字段值;

 

   $model->字段名 = 字段值;

 

   $result = $model->save();

 

(6)、執行select語句,返回:二維數組

 

   $db = Yii::app()->db;

 

   $st = $db->createCommand("select語句");

 

   $rs = $st->queryAll();  //得到全部記錄

 

(7)、執行select語句,返回:一維數組

 

   $db = Yii::app()->db;

 

   $st = $db->createCommand("select語句");

 

   $rs = $st->queryRow();   //得到一條記錄

 

(8)、執行insert、update、delete語句,返回:受影響的行數

 

   $db = Yii::app()->db;

 

   $st = $db->createCommand("insert|update|delete語句");

 

   $result = $st->execute();

(9)、count查詢     返回:數字

   $result = $model->count();

   $result = $model->count(條件);//查詢符合條件的記錄

   $result = $model->countBySql("select語句");

注:Yii框架對聚合函數的封裝只有count(),若想使用其餘的聚合函數則用eg:

$result = $model->countBySql("select max(clickTimes) from bbsInfo");

 


 

       其實在使用時候有不少也是靈活的,並非那麼死板。今天暫時分享到這裏了,還會有後續分享哦

相關文章
相關標籤/搜索