如何使用Yii2迁移指定值?

时间:2017-04-25 12:12:29

标签: yii2 migration

我是Yii2 framework的新手,所以。我需要使用categories指定3 Yii2 migration

Fe:用户输入一个表单,在该表单中有一个下拉列表,他可以从数据库中的指定数据库中选择category,并根据该类别选择items,也存储在数据库中。

我使用迁移创建了foreign keys的所有表,这里是category表:

<?php

use yii\db\Migration;

class m170425_115637_sale extends Migration
{
public function up()
{
    $this->createTable('sale', [
        'id' => $this->primaryKey(),
        'item_id' => $this->integer(11)->notNull(),
        'customer_name' => $this->string(255)->notNull(),
        'customer_surname' => $this->string(255)->notNull(),
        'customer_phone' => $this->string(255)->notNull(),
        'customer_email' => $this->string(255)->notNull(),
        'code' => $this->string(255)->notNull(),
        'sign' => $this->boolean(),
        'comnent' => $this->text(),
    ]);

    // creates index for column `item_id`
    $this->createIndex(
        'idx-post-item_id',
        'sale',
        'item_id'
    );

    // add foreign key for table `user`
    $this->addForeignKey(
        'fk-post-item_id',
        'sale',
        'item_id',
        'item',
        'id',
        'CASCADE'
    );
}

public function down()
{
    $this->dropTable('sale');
}

这是item表:

<?php

use yii\db\Migration;

class m170425_114148_item extends Migration
{
public function up()
{
    $this->createTable('item', [
        'id' => $this->primaryKey(),
        'category_id' => $this->integer(11)->notNull(),
        'name' => $this->string(255)->notNull(),
        'price' => $this->double(),
    ]);

    // creates index for column `category_id`
    $this->createIndex(
        'idx-post-category_id',
        'item',
        'category_id'
    );

    // add foreign key for table `category`
    $this->addForeignKey(
        'fk-item-category_id',
        'item',
        'category_id',
        'category',
        'id',
        'CASCADE'
    );
}

public function down()
{
    $this->dropTable('item');
}

我希望你能理解这个问题,谢谢你的帮助!

1 个答案:

答案 0 :(得分:3)

如果您想在迁移中添加一些表格数据,可以使用batchInsert()

category

通过插入name列的每个给定值,这会向$this->batchInsert('category', ['name', 'another'], [ ['category1', 'aaa'], ['category2', 'bbb'], ['category3', 'ccc'] ]); 表添加3行。

如果您想一次添加更多列,请执行以下操作:

{{1}}