Yii2学习笔记
1.下载框架
首先下载 Yii2 的 Basic App 版本,下载地址:https://github.com/yiisoft/yii2/releases
2.安装框架
修改 yii/config/web.php 文件中 cookieValidationKey 的值。
3.开启重写
(1)修改 yii/config/web.php 文件,给 $config 的 components 项添加以下代码:
'urlManager' => [
    'enablePrettyUrl' => true,
    // 'enableStrictParsing' => true,
    'showScriptName' => false,
    'rules' => [
        // ['class' => 'yii\rest\UrlRule', 'controller' => 'user'],
    ],
]
(2)在web目录下新建.htaccess文件,写入以下代码:
<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . index.php
</IfModule>
4.新建控制器
在 yii/controllers 目录下新建控制器 UserController.php
<?php
namespace frontend\controllers;
use Yii;
use yii\web\Controller;
use frontend\models\DefaultModel;
class DefaultController extends Controller
{
    public function actionIndex()
    {
        // return $this->render('index');
    }
}
5.配置数据库连接信息
修改 yii/config/db.php 文件,填写相应的数据库信息。
如果需要添加数据库前缀,增加 tablePrefix 选项。
6.新建模块操作数据库
在 yii/models 目录下新建模块,默认格式如下:
<?php
namespace frontend\models;
use Yii;
use yii\db\ActiveRecord;
class DefaultModel extends ActiveRecord
{
    public static function tableName()
    {
        return 'table';
    }
    public function rules()
    {
        return [
            [['name', 'title'], 'required'],
            [['name'], 'string', 'max' => 10],
            [['name'], 'unique']
        ];
    }
}
7.新建视图
<?php
use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
$this->title = 'title';
?>
<h1><?= Html::encode($this->title) ?></h1>
<?php $form = ActiveForm::begin(['id' => 'form-id']); ?>
<?php ActiveForm::end(); ?>
8.获取CSRF的值
Yii::$app->request->csrfToken
9.获取$_POST的值
Yii::$app->request->isPost
Yii::$app->request->post()
10.数据库查询
yii\db\ActiveRecord::find()->where()->orderby()->asArray()->limit(10)->one()/count()/all();
yii\db\ActiveRecord::findBySql($sql)->all();
yii\db\ActiveRecord::findOne($where);
yii\db\ActiveRecord::findAll($where);
yii\db\ActiveRecord->save()
yii\db\ActiveRecord->insert()
yii\db\ActiveRecord->update()
yii\db\ActiveRecord->delete()
11. 获取已登录用户信息
# uid
Yii::$app->user->identity->id
# username
Yii::$app->user->identity->username
12. 控制器中的一些方法
# 返回首页
return $this->goHome();
# 返回上一页
return $this->goBack();
# 跳转
return $this->redirect(['/home']);
# 刷新页面
return $this->refresh();
13. 一些加密方法
# 获取一个随机密钥
Yii::$app->security->generateRandomString();
# 密码加密
Yii::$app->security->generatePasswordHash($password);
# 验证密码
Yii::$app->security->validatePassword($password, $this->password_hash);
14. 用户数据表
CREATE TABLE `user` (
  `ID` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
  `username` varchar(200) CHARACTER SET utf8mb4 NOT NULL COMMENT '用户名',
  `auth_key` varchar(32) NOT NULL COMMENT '身份校验密钥',
  `password_hash` varchar(200) NOT NULL COMMENT '密码哈希值',
  `password_reset_token` varchar(200) DEFAULT '' COMMENT '重置密码密钥',
  `phone` varchar(20) NOT NULL COMMENT '手机号',
  `status` tinyint(4) NOT NULL DEFAULT '10' COMMENT '状态',
  `created_at` int(11) NOT NULL COMMENT '创建时间',
  `updated_at` int(11) NOT NULL COMMENT '更新时间',
  PRIMARY KEY (`ID`),
  UNIQUE KEY `username` (`username`),
  UNIQUE KEY `phone` (`phone`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表';