Yii2 初体验
看着Yii1.1有那么多的不爽,又看着Yii2一天天成熟起来,于是凑一个小项目的原型阶段,试着用Yii2搞一搞。
随手写了一点体会,以一个Yii1的熟练工人看向Yii2的视角,简单一说吧。(将来随时可能在本文后面追加补充)
默认的模板使用了bootstrap,很美观。
basic版和advanced版的config文件不大一样。basic版里面,有web.php,后者没有。
设置为中文显示:config/web.php 中,增加一行 ‘language‘=>‘zh-CN‘。然后 Home 变成了首页,Powered by Yii Framework 变成了技术支持 Yii 框架。
使用gii生成model,我勾选了Use Table Prefix,这时生成的model,其tableName()函数返回的是 {{%menu}}。如果不勾选,将返回表名的全称,如 ssn_menu
models/user.php里,增加了不少函数,方便了很多。
在models及controllers中,随处都用 [ ... ] 代替 array(...),好看和清爽了许多。
LibCrudController 对应的URL是 ?r=lib-crud
开始尝试用户登陆部分的定制。。
开始做CRUD (from 20:20)
User::find()->all() 而不是 User::model()->findAll()
在_form.php中引用User,需要首先声明 use app\models\User;
在视图文件中引用ArrayHelper需首先声明 use yii\helpers\ArrayHelper;
在Yii v1.1中需要三行才能搞定的数据录入元素,这里只要一行:
<?= $form->field($model, ‘name1‘)->textInput([‘maxlength‘ => true]) ?>
gii生成的CRUD界面大气、美观了许多,且提示信息自动为中文(这应该是GridView的功劳)
User::findOne($user_id); 和下面的这个并不一样。这个返回一条记录,下面的不知是什么鬼。
$user=User::find()->where([‘id‘ => $id]);
增加 my.css:首先在web/css中增加my.css,然后在assets/AppAsset.php中
public $css = [
‘css/site.css‘,
‘css/my.css‘,
];
置入js文件:$this->registerJsFile("js/start.js"); --当依赖jquery的时候,这个明显不行,提示找不到$。
这里讲得很清楚。几个方案。其中修改 assets/AppAsset.php的方案已调通。其中一个关键点在于(见黑体字):AppAsset::addScript($this,‘@web/js/start.js‘);
页面右下有一个酷酷的debug-toolbar按钮,点击会弹出一个水平的状态条。
地址栏的 index.php?r=site/index 会变成 index.php?r=site%2Findex
稿源:七星互联www . qixoo.com
Yii2 初体验的更多相关文章
- .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
不知不觉,“.NET平台开源项目速览“系列文章已经15篇了,每一篇都非常受欢迎,可能技术水平不高,但足够入门了.虽然工作很忙,但还是会抽空把自己知道的,已经平时遇到的好的开源项目分享出来.今天就给大家 ...
- Xamarin+Prism开发详解四:简单Mac OS 虚拟机安装方法与Visual Studio for Mac 初体验
Mac OS 虚拟机安装方法 最近把自己的电脑升级了一下SSD固态硬盘,总算是有容量安装Mac 虚拟机了!经过心碎的安装探索,尝试了国内外的各种安装方法,最后在youtube上找到了一个好方法. 简单 ...
- Spring之初体验
Spring之初体验 Spring是一个轻量级的Java Web开发框架,以IoC(Inverse of Control 控制反转)和 ...
- Xamarin.iOS开发初体验
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKwAAAA+CAIAAAA5/WfHAAAJrklEQVR4nO2c/VdTRxrH+wfdU84pW0
- 【腾讯Bugly干货分享】基于 Webpack & Vue & Vue-Router 的 SPA 初体验
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57d13a57132ff21c38110186 导语 最近这几年的前端圈子,由于 ...
- 【Knockout.js 学习体验之旅】(1)ko初体验
前言 什么,你现在还在看knockout.js?这货都已经落后主流一千年了!赶紧去学Angular.React啊,再不赶紧的话,他们也要变out了哦.身旁的90后小伙伴,嘴里还塞着山东的狗不理大蒜包, ...
- 在同一个硬盘上安装多个 Linux 发行版及 Fedora 21 、Fedora 22 初体验
在同一个硬盘上安装多个 Linux 发行版 以前对多个 Linux 发行版的折腾主要是在虚拟机上完成.我的桌面电脑性能比较强大,玩玩虚拟机没啥问题,但是笔记本电脑就不行了.要在我的笔记本电脑上折腾多个 ...
- 百度EChart3初体验
由于项目需要在首页搞一个订单数量的走势图,经过多方查找,体验,感觉ECharts不错,封装的很细,我们只需要看自己需要那种类型的图表,搞定好自己的json数据就OK.至于说如何体现出来,官网的教程很详 ...
- Python导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验
Python导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出E ...
随机推荐
- 3110 PHP常见问题
1.中文显示 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /&g ...
- 取消StringGrid的自动滚动
StringGrid的Options的goRowSelect为false时,在点击右侧未显示完全的Cell,StringGrid会自动向左滚动,怎样设定,取消StringGrid的自动滚动啊?Delp ...
- DropDownList中显示无限级树形结构
效果图: 数据库表: DirID:目录的ID,ParentID:目录的父路径ID,Name:目录的名字主要代码: using System;using System.Collections;using ...
- 基于IHttpAsyncHandler的实时大文件传送器
在日常工作中,有时候需要到远程服务器上部署新版本的系统,由于远程服务器出于外网,所以每次都要开QQ连接,非常麻烦.索性就研究了下IHttpasyncHandler,并结合Juqery Progress ...
- js学习第二篇简单语法
字符串(String)字面量 可以使用单引号或双引号 数组(Array)字面量 定义一个数组: [40, 100, 1, 5, 25, 10] 对象(Object)字面量 定义一个对象: {first ...
- 20145222黄亚奇《Java程序设计》第4周学习总结
教材学习内容总结 第6章 为了避免重复的行为定义使用继承. 要学会如何正确判断使用继承的时机以及继承之后如何活用多态. 继承的好处之一,就是若你要将name.lexel.blood改为其他名称,那就只 ...
- RF源码阅读(碎片纪录)-Python积木之contextlib
参考页面: http://docs.python.org/2/library/contextlib.html contextlib是为了配合with语句来使用的.使用起来更加简洁.本来想写一下,这位同 ...
- [MCSM] 蒙特卡罗统计方法
起因 最开始的时候,写多了LDPCC误码率的仿真,心中便越来越有了疑惑.误码率仿真,多为Monte Carlo仿真,其原理是什么,仿真结果是否可靠,可靠程度是多少,如何衡量其可靠性这些问题我都很不清楚 ...
- Android 中R文件丢失问题解决方案
Project → clean 项目上右键→android Tools→ fix project 检查xml文件中有无命名错误,特别是@+id写成@id的[特别是这条,注意看控制台打印的xml错误]
- grootJs 属性过滤器
index10.html <html><head> <title>属性过滤器</title> <script src="jquery-1 ...