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的影响-_-#)
- 模型:创建模型,一种是与数据表无关的,即创建表单;另一种与数据表有关。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)的更多相关文章
- Yii框架学习笔记(二)将html前端模板整合到框架中
选择Yii 2.0版本框架的7个理由 http://blog.chedushi.com/archives/8988 刚接触Yii谈一下对Yii框架的看法和感受 http://bbs.csdn.net/ ...
- Yii框架学习 新手教程(一)
本人小菜鸟一仅仅,为了自我学习和交流PHP(jquery,linux,lamp,shell,javascript,server)等一系列的知识,小菜鸟创建了一个群.希望光临本博客的人能够进来交流.寻求 ...
- Yii 框架学习--01 框架入门
Yii 是一个高性能的,适用于开发 WEB2.0 应用的 PHP 框架. Yii目前有两个主要的版本: 2.0 和 1.1.本文以YII 2.0.7为例. 环境需求 Yii2.0 框架有一些系统上的需 ...
- PHP开发框架之YII框架学习——碾压ThinkPHP不是梦
前 言 JRedu 程序猿是一种慵懒的生物!能少敲一行代码,绝对不会多敲一个字符!所以,越来越多的开发框架应运而生,在帮助我们完成功能的同时,极大程度上也帮我们节省了人力物力,而且也提高了系统的 ...
- Yii框架学习资源盘点
盘点一些Yii框架的常用学习资源. 1.Yii中文论坛 https://www.yiichina.com/ 2.Yii中文网 http://www.yii-china.com/ 3.魏曦教你学Yii2 ...
- <yii 框架学习> yii 框架改为中文提示
工作需要用到yii框架,但发现yii框架自带的提示都是英文的.上网找资料才发现其实可以自己陪置 . 将项目protected/config/main.php里的app配置加上language=> ...
- YII框架学习(二)
YII框架的增删改查 例:一个新闻表的增删改查: (1)首先使用gii工具生成控制器和模型 (2)控制器 <?php class NewsController extends Controlle ...
- YII框架学习(一)
1.安装: windows:将php命令所在的文件夹路径加入到环境变量中,通过cmd命令:进入yii框架中的framework目录,执行: php yiic webapp ../cms linux:类 ...
- Yii 框架学习--02 进阶
应用结构 入口文件 文件位置: web/index.php <?php //开启debug,应用会保留更多日志信息,如果抛出异常,会显示详细的错误调用堆栈 defined('YII_DEBUG' ...
随机推荐
- MySQL+navicat-1064 Error解决方案
MySQL+navicat-1064 Error解决方案 错误 #1064 - You have an error in your SQL syntax; check the manual that ...
- python的异常处理机制
异常机制己经成为衡量一门编程语言是否成熟的标准之一,使用异常处理机制的 Python 程序有更好的容错性,更加健壮. 对于计算机程序而言,情况就更复杂了一一没有人能保证自己写的程序永远不会出辛苦!就算 ...
- 【问题】【编程环境】fatal error: security/pam_appl.h
[问题] 今天在docker中基于centos镜像的容器编译gogs遇到错误 似乎缺少库文件 [解决] yum -y install pam-devel
- Jmeter之cookie登录
1.在web登录时,抓取登录的响应头 2.在jmeter中配置cookie HTTP Cookie管理器中添加信息 以下三个字段是必填的 3.添加HTTP请求(直接访问首页) 如果返回成功,并且响应内 ...
- 使用Qt 3D Studio 2.4显着提升性能(渲染速度提高了565%)
发布于2019年6月18日星期二11评论Qt 3D Studio 2.4显着改善性能 发表于Biz Circuit&Dev Loop,设计,图形,性能,Qt 3D Studio 除了有效使用系 ...
- jvm调试相关:jmap失效下找到alternatives神器
1.使用 jmap <pid>出现的错误日志:很明显是版本问题 Error attaching to process: sun.jvm.hotspot.runtime.VMVersionM ...
- ASP.NET Core MVC里面Razor如何获取URL参数
原文:ASP.NET Core MVC里面Razor如何获取URL参数 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https:// ...
- Sharepoint 开启App 配置App
如果没有Enable app,打开app store的时候出出现错误: Sorry, apps are turned off. If you know who runs the server, tel ...
- Flask:上下文管理
1. werkzurg from werkzur.serving import run_simple def run(environ,start_response): reuturn [b'hello ...
- Spark 源码和应用开发环境的构建
引言 Spark 现在无疑是大数据领域最热门的技术之一,读者很容易搜索到介绍如何应用 Spark 技术的文章,但是作为开发人员,在了解了应用的概念之后,更习惯的是打开开发环境,开发一些应用来更深入的学 ...