關於Yii框架的基礎知識


        第一次寫博文,也不知道怎么寫,不太熟悉,帶小伙伴學習一樣我日常使用的Yii框架。

        PHP中的開發框架有很多,比如:ThinkPHP、Yii、CI、Laravel、Phalcon等。現在流行度最高的是Laravel框架,鑒於公司用的是Yii框架,就講一講Yii框架的基礎操作。希望寫好的就借鑒,寫的不好的可以向我提出建議。

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

 


 

   2.腳手架功能 

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

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

    (2)、切換到項目中的framework文件夾里

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

       yiic webapp ../app

      錯誤提示:"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");

 


 

       其實在使用時候有很多也是靈活的,並不是那么死板。今天暫時分享到這里了,還會有后續分享哦

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM