Yii 處理表單的方法
1、通過yii\widgets\ActiveForm來創建表單,ActiveField與表單屬性對應。
2、HTML幫助類,提供靜態方法生成HTML標籤;
3、別名:用別名來寫路徑,防止出錯;
參考文獻
<<權威指南 The difinitive guide to YII2.0>>
<<類參考手冊 YII PHP framework version2>>
4、http://192.168.56.10/blogDemo/advanced/backend/web/index.php?r=gii
打開連接,啓用Gii,開始創建model,controller
5、在blogDemo\advanced\backend\views\layouts\main.php
增加菜單欄
$menuItems = [
['label' => '文章管理', 'url' => ['/post/index']],
['label' => '評論管理', 'url' => ['/comment/index']],
['label' => '用戶管理', 'url' => ['/user/index']],
['label' => '管理員', 'url' => ['/adminuser/index']],
];
6、ActiveRecord
一個AR類對應一個數據表,每個AR對象對應數據表中的一行。
AR對象的屬性對應爲數據行中的列;
可以以面向對象的方式直接操縱數據表中的數據,這樣就能不寫sql來實現對數據庫的訪問。
7、DetailView 用來顯示類的示例的一個對象
template '<tr><th{captionOptions}>{label}</th><td{contentOptions}>{value}</td></tr>'
用來自定義DetailRecord的格式
8、魏曦在4.4有個回顧
9、ArrayHelper,幫助更好的操作數組;
getValue(),getColunm();
map()方法從一個一維或者多維數組中建立映射表;參數爲需要建立的表和值
echo "<pre>";
print_r($obj1);
echo "</pre>";
exit(0);
10、查詢構建器
查詢構建器是建立在DAO基礎之上的可以創建程序化的sql
如何使用構建器
1、創建一個 yii\db\query對象來代表一個select sql語句,然後構建查詢條件
2、通過column(),all(),one()方法來執行從數據庫中檢索這些數據
User::find()->all(); //返回所有用戶數據;
//返回 主鍵 id=1 的一條數據;
User::find()->where(['name' => 'ttt'])->one(); //返回 ['name' => 'ttt'] 的一條數據;
User::find()->where(['name' => 'ttt'])->all(); //返回 ['name' => 'ttt'] 的所有數據;
User::findBySql('SELECT * FROM user')->all(); //用 sql 語句查詢 user 表裏面的所有數據;
User::findBySql('SELECT * FROM user')->one(); 此方法是用 sql 語句查詢 user 表裏面的一條數據;
User::find()->andWhere(['sex' => '女', 'age' => '18'])->count('id'); //統計符合條件的總條數;
User::find()->one(); //返回一條數據;
User::find()->all(); //返回所有數據;
User::find()->count(); //返回記錄的數量;
User::find()->average(); //返回指定列的平均值;
User::find()->min(); //返回指定列的最小值 ;
User::find()->max(); //返回指定列的最大值 ;
User::find()->scalar(); //返回值的第一行第一列的查詢結果;
User::find()->column(); //返回查詢結果中的第一列的值;
11、在XXSearch()方法裏面增加分頁功能
$dataProvider = new ActiveDataProvider([
'query' => $query,
'pagination' => ['pagesize' =>6]
]);
12、dataProvider對於數據的排序
$dataProvider = new ActiveDataProvider([
'query' => $query,
'pagination' => [
'pagesize' =>6,
],
'sort' =>[
'defaultOrder'=>[
'id' => SORT_ASC,
]
]
]);
13、打印模型錯誤 print_r($model->getErrors());
14、
/**
* [std_class_object_to_array 將對象轉成數組]
* @param [stdclass] $stdclassobject [對象]
* @return [array] [數組]
*/
public static function std_class_object_to_array($stdclassobject)
{
$_array = is_object($stdclassobject) ? get_object_vars($stdclassobject) : $stdclassobject;
foreach ($_array as $key => $value) {
$value = (is_array($value) || is_object($value)) ? self::std_class_object_to_array($value) : $value;
$array[$key] = $value;
}
return $array;
}
15、使用yii2
http://admin.spa.com/index.php?r=gii%2Fdefault%2Fview&id=crud