• 路由:两种方式,第一种是默认方式访问,假设配置了虚拟主机,那么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. 20190507-学习dubbo有感于梁飞

    “作为一名程序员,BAT肯定是大多数人都想进的,仿佛是一种情愫,就像学生时代的我们对清华北大的向往感觉一样.Dubbo团队中,其中主要负责人就是梁飞了,梁飞的经历还是蛮励志的.梁飞,花名虚极, 200 ...

  2. c语言中int long float double 等类型所占字节及输出表示(转)

    16位编译器 char :1个字节 char*(即指针变量): 2个字节 short int : 2个字节 int: 2个字节 unsigned int : 2个字节 float: 4个字节 doub ...

  3. django 中 null=True 和 blank=True的区别!

    null 是针对数据库而言,如果 null=True, 表示数据库的该字段可以为空,即在Null字段显示为YES. blank 是针对表单的,如果 blank=True,表示你的前端表单填写该字段的时 ...

  4. CentOS7 Python3上安装paramiko

    1. CentOS 7下安装Python3.5 CentOS7默认安装了python2.7.5,要用 Python3需要自己手动安装.注意不要删除python2. 1.1 下载python3源码包 w ...

  5. @RequestBody, @ResponseBody 注解理解

    @RequestBody, @ResponseBody 注解理解 自己以前没怎么留意过,来实习后公司采用前后端分离的开发方式,前后端拿到的注释都是 json 格式的,这时候 @RequestBody, ...

  6. JSON函数表

    jsoncpp 主要包含三个class:Value.Reader.Writer.注意Json::Value 只能处理 ANSI 类型的字符串,如果 C++ 程序是用 Unicode 编码的,最好加一个 ...

  7. 进阶Java编程(3)线程的同步与死锁

    线程的同步与死锁 1,同步问题引出 在多线程的处理之中,可以利用Runnable描述多个线程操作的资源,而Thread描述每一个线程对象,对于当多个线程访问统一资源的时候如果处理不当就会产生数据的错误 ...

  8. Winform 5种皮肤小结(内含丰富的下载实例)

    软件界面就是指软件中面向操作者而专门设计的用于操作使用及反馈信息的指令部分. 优秀的软件界面有简便易用,突出重点,容错高等特点. 1.东日IrisSkin  使用IrisSkin只能是对单一的控件重绘 ...

  9. C# WebApi日期格式化

    WebApi中日期格式化:在WebApiConfig文件中加入如下代码即可,之前遇到的问题,日期中总带有T,现在记录一下解决的方法. 代码: private static void ReturnDat ...

  10. npm安装淘宝镜像cnpm

    在cmd中执行 npm install -g cnpm --registry=https://registry.npm.taobao.org