zoukankan      html  css  js  c++  java
  • yii框架学习(MVC)

    • 路由:两种方式,第一种是默认方式访问,假设配置了虚拟主机,那么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的影响-_-#)
    • 模型:创建模型,一种是与数据表无关的,即创建表单;另一种与数据表有关。yiiaseModel 被用于普通模型类的父类并与数据表无关yiidbActiveRecord 通常是普通模型类的父类但与数据表有关联(译注:yiidbActiveRecord 类其实也是继承自 yiiaseModel,增加了数据库处理)。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 的类自动加载器,你需要在创建和命名类的时候遵循两个简单的规则,每个类都必须置于命名空间之下 (比如 fooarMyClass);每个类都必须保存为单独文件,且其完整路径能用以下算法取得,$classFile = Yii::getAlias('@' . str_replace('\', '/', $className) . '.php');
  • 相关阅读:
    C# 字符串转换值类型
    C#判断字符串为空
    c#转义字符
    python各种类型的转换
    mysql创建新用户及新用户不能本地登陆的问题
    数据探索的方法
    使用requests爬取猫眼电影TOP100榜单
    Python中的正则表达式教程
    Anaconda多版本Python管理以及TensorFlow版本的选择安装
    Xshell访问虚拟机内Linux
  • 原文地址:https://www.cnblogs.com/bneglect/p/11179047.html
Copyright © 2011-2022 走看看