# 第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);
?>
```
效果图:
![](https://box.kancloud.cn/3d8f079713371cf91df797094319e074_1920x1007.jpg)