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");

     


     

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

     

  • 相关阅读:
    MySQL数据库 : 高级查询
    ElasticSearch : High Rest Api 使用
    Java : JavaWeb和Tomcat相关
    Linux : Ubuntu 安装 RabbitMQ
    Spring : Spring Security
    Java : logback简单配置
    Spring : JPA的单独使用
    Java : Netty 入门案例
    python__PIP : 安装第三方库
    好文章收藏(持续更新)
  • 原文地址:https://www.cnblogs.com/xiaonannan/p/6802202.html
Copyright © 2011-2022 走看看