Yii2 初體驗,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
- 開始嘗試用戶登陸部分的定制。。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