YII2(一)用YII2创建、迁移数据表 migrations

YII2属于 PHP开发框架的一种,主要应用于应用中大型WEB开发。

    下面为YII2的配置数据库连接。

首先为了安全考虑,设置不保存本地的配置信息,在公共的common/config/.gitignore中设置。

   

下面,讲一下YII2数据库的创建命令。



创建成功后,会有m+时间戳+命名.php文件生成


其中,在类中可以写up()方法,还有down()方法;

up()则是创建一张表,而down()则是删除这张表;


如下面代码:


public function safeUp()
{
    $tableOptions = null;
    if ($this->db->driverName === 'mysql') {
        // http://stackoverflow.com/questions/766809/whats-the-difference-between-utf8-general-ci-and-utf8-unicode-ci
        $tableOptions = 'CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE=InnoDB';
    }

    $this->createTable(USER_TABLE, [
        'id' => Schema::TYPE_PK,
        'username' => Schema::TYPE_STRING . ' NOT NULL',
        'auth_key' => Schema::TYPE_STRING . '(32) NOT NULL',
        'password_hash' => Schema::TYPE_STRING . ' NOT NULL',
        'password_reset_token' => Schema::TYPE_STRING,
        'email' => Schema::TYPE_STRING . ' NOT NULL',

        'status' => Schema::TYPE_SMALLINT . ' NOT NULL DEFAULT 10',
        'created_at' => Schema::TYPE_INTEGER . ' NOT NULL',
        'updated_at' => Schema::TYPE_INTEGER . ' NOT NULL',
    ], $tableOptions);

    /* 创建索引 1,索引名称 2,表名 3,数组,使用哪些字段创建索引值 4,默认为false,是否是唯一性的*/
    $this->createIndex('user',USER_TABLE,['username'],true);
    $this->createIndex('email',USER_TABLE,['email'],true);
}

之后,运行该脚本



此时会生成两张表


其中,migration为yii2框架自带的表,用于生成数据库迁移用。

user则为刚刚创建的表



接下来,在命令行中,创建初始数据,这样更便捷,易于以后的维护。


创建初始数据的操作,可以使用gii图形工具来进行创建。


http://localhost:84/index.php?r=gii

进入 Model Generator中,

自动生成后的models代码

<?php

namespace app\models;

use 
Yii;

/**
 * This is the model class for table "{{%User}}".
 *
 * @property integer $id
 * @property string $username
 * @property string $auth_key
 * @property string $password_hash
 * @property string $password_reset_token
 * @property string $email
 * @property integer $status
 * @property integer $created_at
 * @property integer $updated_at
 */
class User extends \yii\db\ActiveRecord
{
    
/**
     * @inheritdoc
     */
    
public static function tableName()
    {
        return 
'{{%User}}';
    }

    
/**
     * @inheritdoc
     */
    
public function rules()
    {
        return [
            [[
'username''auth_key''password_hash''email''created_at''updated_at'], 'required'],
            [[
'status''created_at''updated_at'], 'integer'],
            [[
'username''password_hash''password_reset_token''email'], 'string''max' => 255],
            [[
'auth_key'], 'string''max' => 32],
            [[
'username'], 'unique'],
            [[
'email'], 'unique']
        ];
    }

    
/**
     * @inheritdoc
     */
    
public function attributeLabels()
    {
        return [
            
'id' => Yii::t('app''ID'),
            
'username' => Yii::t('app''Username'),
            
'auth_key' => Yii::t('app''Auth Key'),
            
'password_hash' => Yii::t('app''Password Hash'),
            
'password_reset_token' => Yii::t('app''Password Reset Token'),
            
'email' => Yii::t('app''Email'),
            
'status' => Yii::t('app''Status'),
            
'created_at' => Yii::t('app''Created At'),
            
'updated_at' => Yii::t('app''Updated At'),
        ];
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值