# 第2章 項目的準備工作
## 框架
下載地址 https://github.com/yiisoft/yii2/releases/download/2.0.7/yii-basic-app-2.0.7.tgz
## 運行環境搭建
>=PHP5.4
php requirements.php //運行環境監測
## 框架介紹
...
## 創建一個操作
創建控制器
- 在 controllers 下新建 IndexController.php 控制器
- 類名:IndexController
- 繼承 yii\web\Controller
創建方法
- 方法名前綴:action
- 使用方法和函數一樣
- 渲染模板使用 render 方法
創建數據庫模型類
- 創建 \models\Admin.php 類
- 繼承 \yii\db\ActiveRecord 類
- 聲明 tableName 指定表名
- 使用 {{%表名}} 指定表前綴
## 數據庫配置
\config\db.php
```
return [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=yii2basic',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'tablePrefix' => 'shop_'
];
```
```
DROP TABLE IF EXISTS `shop_admin`;
CREATE TABLE IF NOT EXISTS `shop_admin`(
`adminid` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',
`adminuser` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '管理員賬號',
`adminpass` CHAR(32) NOT NULL DEFAULT '' COMMENT '管理員密碼',
`adminemail` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '管理員電子郵箱',
`logintime` INT UNSIGNED NOT NULL DEFAULT '0' COMMENT '登錄時間',
`loginip` BIGINT NOT NULL DEFAULT '0' COMMENT '登錄IP',
`createtime` INT UNSIGNED NOT NULL DEFAULT '0' COMMENT '創建時間',
PRIMARY KEY(`adminid`),
UNIQUE shop_admin_adminuser_adminpass(`adminuser`, `adminpass`),
UNIQUE shop_admin_adminuser_adminemail(`adminuser`, `adminemail`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `shop_admin`(adminuser,adminpass,adminemail,createtime) VALUES('admin', md5('123'), 'shop@imooc.com', UNIX_TIMESTAMP());
```
## 示例
創建 index 方法,實例化模型,模型查找數據庫數據,將數據傳遞給模板
```
public function actionIndex()
{
$model = new Admin;
$data = $model->find()->one();
return $this->render('index', compact('data'));
}
```
在視圖中輸出變量$data;
```
<p>index/index</p>
<?php
var_dump($data);
?>
```
效果圖:
