看着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_menumodels/user.php里,增加了不少函数,方便了很多。在models及controllers中,随处都用 [ ... ] 代替 array(...),好看和清爽了许多。libcrudcontroller 对应的url是 ?r=lib-crud开始尝试用户登陆部分的定制。。http://www.yiichina.com/tutorial/332开始做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的时候,这个明显不行,提示找不到$。https://segmentfault.com/a/1190000003742452 这里讲得很清楚。几个方案。其中修改 assets/appasset.php的方案已调通。其中一个关键点在于(见黑体字):appasset::addscript($this,'@web/js/start.js');页面右下有一个酷酷的debug-toolbar按钮,点击会弹出一个水平的状态条。地址栏的 index.php?r=site/index 会变成 index.php?r=site%2findex