原文地址:http://blog.csdn.net/woaixhq/article/details/46364223php
對於yii的研究,尚未那麼深入,之因此在這種狀況下寫,仍是考慮到了後來入門人沒有中文資料,而又無可下手的尷尬境地。但願對新手和我本身多一份幫助吧。總結幾個本身的經驗吧。環境的配置我就不作解釋了。這個能夠從網上找。sql
1關於定義系統參數的問題緩存
在項目中config的目錄中,分別有params-local.php和params.php的倆個php文件,這倆個文件了能夠設置你所須要的 全局的參數。具體目錄是放在common、frontend、backend的config裏,看你所需了。這倆個文件的區別,在我看來,就是是不是本地 化的區別。若是有參數須要根據網站部署環境而改變,最好仍是放在params-local.php裏,params-local.php最好不要放在項目 版本庫裏。params.php裏的參數仍是要存放比較穩定的參數。另外,在這倆個裏邊設置了參數,調用是沒區別的。舉個例子:app
在params-local.php中frontend
在params.php中
yii
2,建立本身的小組件(其實就是能夠把公用的方法組合一下。方便程序調用)佈局
在common下建立components目錄,在此目錄下新建Functions.php文件。Function類代碼以下網站
而後再common/config/main.php中的components節點,增長this
這時候調用就簡單了。利用Yii::$app->functions->test("aaa");url
3.ActiveForm開發時候須要的問題
對於ActiveForm的驗證,實際使用當中總結出一個問題:
<?= $form->field($model, 'description', ['template' =& gt; '{input}'])->textInput() ?>對於這段代碼尤爲須要注意,template裏千萬不能出現不完整標籤,否 則驗證失效,即['template' => '<td>{input}</td>']這樣,驗證是不起做用的,可是 ['template' => '<table><tr><td>{input}</td>& lt;/tr></table>']這樣是有效的。雖然不會這樣佈局,但仍是但願你們能注意。佈局仍是div佈局
4關於查詢的一些總結
1)Adv::find()->where(['pos_id'=>1])->andwhere(["status"=> 0])->all(); //查詢返回所有 // ->one() 查詢1個結果 // ->count() 獲取數量
2)查詢一個結果的時候,也能夠這樣實現
Adv::findOne($id);或者Adv::findOne($condition);
3) 多表聯查
$model=new Adv();
$model->find()->join(‘LEFT JOIN‘,‘adv_pos‘,‘adv_pos.id=adv.pos_id‘)
->select()->//字段
->where(‘adv.status‘=>0)
->andwhere(‘pos_id=1‘)
->one();
4)like查詢 andFilterWhere 例如
$order->andFilterWhere(['like','product_title', $product_title]);
也能夠對大於,小於進行這樣的操做
注意一個篩選查詢
$query->andFilterWhere(['like', 'ORG_CODE', $this->ORG_CODE])
->andFilterWhere(['between', 'CREATED_AT', $this->START_AT, $this->END_AT]);//這樣是錯誤的
$query->andFilterWhere(['like', 'ORG_CODE', $this->ORG_CODE])
->andFilterWhere(['and', 'CREATED_AT', $this->START_AT, $this->END_AT]);//正確
5日誌的用法
1)文件日誌緩存
main.php中components增長
項目中調用
文章總結到這裏,後續會繼續更新。