看著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 appmodelsUser;
- 在視圖檔中引用ArrayHelper需先宣告 use yiihelpersArrayHelper;
- 在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
-