我是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');
}
我希望你能理解这个问题,谢谢你的帮助!
答案 0 :(得分:3)
如果您想在迁移中添加一些表格数据,可以使用batchInsert()。
category
通过插入name
列的每个给定值,这会向$this->batchInsert('category', ['name', 'another'], [
['category1', 'aaa'],
['category2', 'bbb'],
['category3', 'ccc']
]);
表添加3行。
如果您想一次添加更多列,请执行以下操作:
{{1}}