博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
yii框架学习(一)
阅读量:5231 次
发布时间:2019-06-14

本文共 1787 字,大约阅读时间需要 5 分钟。

  • 路由:两种方式,第一种是默认方式访问,假设配置了虚拟主机,那么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框架流程图:
  • 控制器:控制器的方法如果有参数的话,最好是设置默认值,不然页面中没有传相对应的参数时会报错。方法前面加action,Yii 使用 action 前缀区分普通方法和操作。 action 前缀后面的名称被映射为操作的 ID。
  • 视图:控制器里渲染视图使用 $this->render('', []); 第一个参数时url, 第二个是传的参数,视图文件可以使用<?=Html::encode($var)?>   输出变量。视图文件保存的路径  views/控制器ID/视图文件名.php。视图文件名直接和方法名相同名字不容易出问题把。(受tp的影响-_-#)
  • 模型:创建模型,一种是与数据表无关的,即创建表单;另一种与数据表有关。 被用于普通模型类的父类并与数据表无关, 通常是普通模型类的父类但与数据表有关联(译注: 类其实也是继承自 ,增加了数据库处理)。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');

转载于:https://www.cnblogs.com/bneglect/p/11179047.html

你可能感兴趣的文章
SSH框架整合总结
查看>>
图的深度优先遍历
查看>>
C# 之 提高WebService性能大数据量网络传输处理
查看>>
Python面向对象之:三大特性:继承,封装,多态以及类的约束
查看>>
微信小程序实现类似JQuery siblings()的方法
查看>>
md5sum命令详解
查看>>
[bzoj1004] [HNOI2008] Cards
查看>>
使用 Swoole 来加速你的 Laravel 应用
查看>>
TextWatcher原因activity内存泄漏问题
查看>>
Merge into的使用具体解释-你Merge了没有
查看>>
Linux安装程序Anaconda分析
查看>>
如何在chrome上打开SSL3.0
查看>>
应该是实例化对象的没有对属性赋值时,自动赋值为null,但不是空指针对象引用...
查看>>
从网易与淘宝的font-size思考前端设计稿与工作流
查看>>
原生HttpClient详细使用示例
查看>>
几道面试题
查看>>
搜索引擎-SHODAN
查看>>
Factory Design Pattern
查看>>
python中贪婪与非贪婪
查看>>
guava API整理
查看>>