zoukankan      html  css  js  c++  java
  • 关于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");

     


     

           其实在使用时候有很多也是灵活的,并不是那么死板。今天暂时分享到这里了,还会有后续分享哦

     

  • 相关阅读:
    POJ 1659 Frogs' Neighborhood
    zoj 2913 Bus Pass(BFS)
    ZOJ 1008 Gnome Tetravex(DFS)
    POJ 1562 Oil Deposits (DFS)
    zoj 2165 Red and Black (DFs)poj 1979
    hdu 3954 Level up
    sgu 249 Matrix
    hdu 4417 Super Mario
    SPOJ (BNUOJ) LCM Sum
    hdu 2665 Kth number 划分树
  • 原文地址:https://www.cnblogs.com/xiaonannan/p/6802202.html
Copyright © 2011-2022 走看看