• 路由:两种方式,第一种是默认方式访问,假设配置了虚拟主机,那么localhost/web/index.php?r=admin/index    访问的是controllers目录下的admin控制器里的index方法。如果使用的是modules,那么localhost/web/index.php?r=admin/admin/index      访问的是modules目录下的admin模块admin控制器里的index方法。控制器必须要加 Controller ,普通的类不要加 Controller ,方法前必须加action,否则路由不能识别。驼峰命名的控制器名还有方法名(yii里称控制器ID,模块ID等)在路由里要加 - ,比如:UserLoginController  要写成 user-login。美化的url需要使用url管理器。web.php里配置urlManager,后续更新URLmanager用法。。
  • 应用:
    • aliases:  可以通过aliases给路径起个别名。
    • bootstrap: 给一个模块自定义一个url规则。注:启动组件太多浪费性能。
    • catchAll:维护模式下使用,指定一个控制器方法处理所有用户请求。
    • components: 注册应用组件。
    • controllerMap:不想用默认的控制器ID指向控制器类,可以配置此属性,使用自定义的控制器ID指向控制器类。
    • modules:配置模块类
    • name:显示给终端用户的应用名称。
    • viewPath:指定视图文件的根目录
  • yii框架流程图:https://www.yiichina.com/doc/guide/2.0/start-workflow
  • 控制器:控制器的方法如果有参数的话,最好是设置默认值,不然页面中没有传相对应的参数时会报错。方法前面加action,Yii 使用 action 前缀区分普通方法和操作。 action 前缀后面的名称被映射为操作的 ID。
  • 视图:控制器里渲染视图使用 $this->render('', []); 第一个参数时url, 第二个是传的参数,视图文件可以使用<?=Html::encode($var)?>   输出变量。视图文件保存的路径  views/控制器ID/视图文件名.php。视图文件名直接和方法名相同名字不容易出问题把。(受tp的影响-_-#)
  • 模型:创建模型,一种是与数据表无关的,即创建表单;另一种与数据表有关。yii\base\Model 被用于普通模型类的父类并与数据表无关yii\db\ActiveRecord 通常是普通模型类的父类但与数据表有关联(译注:yii\db\ActiveRecord 类其实也是继承自 yii\base\Model,增加了数据库处理)。class UserForm  extends Model{}创建表单。UserForm里的rules方法用来验证表单数据。验证表单数据可以调用UserForm实例化的模型的validate() 方法来触发数据验证,如果数据验证失败,hasErrors将被设置为true,通过调用getErrors获取错误信息。(new UserForm)->validate()触发数据验证。
    继承了activeRecord的模型,yii会根据类名去找数据表,当然也可以通过tableName()方法显式指定表名。
    // 获取 country 表的所有行并以 name 排序
    $countries = Country::find()->orderBy('name')->all();
    // 获取主键为 “US” 的行
    $country = Country::findOne('US');
    // 输出 “United States”
    echo $country->name; // 修改 name 为 “U.S.A.” 并在数据库中保存更改
    $country->name = 'U.S.A.';
    $country->save();

    linkPager小部件显示分页。

  • 自动加载:要使用 Yii 的类自动加载器,你需要在创建和命名类的时候遵循两个简单的规则,每个类都必须置于命名空间之下 (比如 foo\bar\MyClass);每个类都必须保存为单独文件,且其完整路径能用以下算法取得,$classFile = Yii::getAlias('@' . str_replace('\\', '/', $className) . '.php');

yii框架学习(MVC)的更多相关文章

  1. Yii框架学习笔记(二)将html前端模板整合到框架中

    选择Yii 2.0版本框架的7个理由 http://blog.chedushi.com/archives/8988 刚接触Yii谈一下对Yii框架的看法和感受 http://bbs.csdn.net/ ...

  2. Yii框架学习 新手教程(一)

    本人小菜鸟一仅仅,为了自我学习和交流PHP(jquery,linux,lamp,shell,javascript,server)等一系列的知识,小菜鸟创建了一个群.希望光临本博客的人能够进来交流.寻求 ...

  3. Yii 框架学习--01 框架入门

    Yii 是一个高性能的,适用于开发 WEB2.0 应用的 PHP 框架. Yii目前有两个主要的版本: 2.0 和 1.1.本文以YII 2.0.7为例. 环境需求 Yii2.0 框架有一些系统上的需 ...

  4. PHP开发框架之YII框架学习——碾压ThinkPHP不是梦

      前  言 JRedu 程序猿是一种慵懒的生物!能少敲一行代码,绝对不会多敲一个字符!所以,越来越多的开发框架应运而生,在帮助我们完成功能的同时,极大程度上也帮我们节省了人力物力,而且也提高了系统的 ...

  5. Yii框架学习资源盘点

    盘点一些Yii框架的常用学习资源. 1.Yii中文论坛 https://www.yiichina.com/ 2.Yii中文网 http://www.yii-china.com/ 3.魏曦教你学Yii2 ...

  6. <yii 框架学习> yii 框架改为中文提示

    工作需要用到yii框架,但发现yii框架自带的提示都是英文的.上网找资料才发现其实可以自己陪置 . 将项目protected/config/main.php里的app配置加上language=> ...

  7. YII框架学习(二)

    YII框架的增删改查 例:一个新闻表的增删改查: (1)首先使用gii工具生成控制器和模型 (2)控制器 <?php class NewsController extends Controlle ...

  8. YII框架学习(一)

    1.安装: windows:将php命令所在的文件夹路径加入到环境变量中,通过cmd命令:进入yii框架中的framework目录,执行: php yiic webapp ../cms linux:类 ...

  9. Yii 框架学习--02 进阶

    应用结构 入口文件 文件位置: web/index.php <?php //开启debug,应用会保留更多日志信息,如果抛出异常,会显示详细的错误调用堆栈 defined('YII_DEBUG' ...

随机推荐

  1. Rsync快速入门实例(转)

    三种主要数据传输方式 单主机本地目录间数据传输(类似cp) Local: rsync [OPTION...] SRC... [DEST] 借助rcp,ssh等通道来传输数据(类似scp) Access ...

  2. hashMap,hashTable,TreeMap,concurrentHashMap区别

    hashMap: 基于哈希表实现 treeMap: 基于二叉树实现,适用于排序 hashTable: 底层还是HashMap,在方法上加了同步 concurrentHashMap: java7底层通过 ...

  3. java自定义excel

    文件下载 本文主要介绍spring boot环境下,利用Apache POI操作Excel,实现Excel文件的在线下载. 首先,我们在这里介绍一下关于ApachePOI中关于HSSF,XSSF和SX ...

  4. sql server存储过程回滚事务

    SET NOCOUNT ON这个很常用 作用:阻止在结果集中返回显示受T-SQL语句或则usp影响的行计数信息. 当SET ONCOUNT ON时候,不返回计数,当SET NOCOUNT OFF时候, ...

  5. 数值或者电话号码被EXCEL转成了科学计数法,用XSSFCell 如何读取

    public static Map<String, Integer> readXls() throws IOException { //用来获取每一个小号重复多次,被多少账号用了.来平均 ...

  6. 帝国cms 修改分页样式

    帝国cms 修改分页样式(路径) /e/class/t_functions.php

  7. 判断一个数是否为回文数(js)

    //判断是否为回文数:若n=1234321,则称n为一回文数 let readline = require("readline-sync"); let newNum = 0; co ...

  8. 跨平台编译ceres for Android

    折腾了几乎一天,记录一下. 最大的坑是官网给出的 1.进入ceres源代码目录下的jni目录 2.EIGEN_PATH="指向eigen库目录,即包含EIGEN文件夹的那个文件夹” ndk- ...

  9. vue滚动+滑动删除标记(移动端)仿qq/微信

    安装组件 "vue-touch": "^2.0.0-beta.4", main.js引入 import VueTouch from 'vue-touch' Vu ...

  10. GDI+ 绘图教程 验证码

    使用的 C# winform using System; using System.Collections.Generic; using System.ComponentModel; using Sy ...