yii2 Создание/удаление таблицы с внешним ключом (foreign key, миграция)
Primary tabs
- Для начала прописываем в консоли команду для создания таблицы в базе данных с помощью миграции:
./yii migrate/create create_name_table
Подробнее о миграциях здесь
- Корректируем код в созданном файле /basic/migrations/ваша_миграция.php:
//Создание таблицы для хранения информации о загруженных картинках class m170912_164513_create_images_table extends Migration { public function up() { //Добавляем все необходимые поля $this->createTable('images', [ 'id' => $this->primaryKey()->notNull(), 'path' => $this->char(250)->notNull(), 'description' => $this->char(255)->defaultValue(null), 'goodId' => $this->bigInteger(20)->notNull(), //Внимание! Тип поля внешнего ключа должен совпадать с типом связываемого с ним поля ]); // Добавляем foreign key $this->addForeignKey( 'goodId', // это "условное имя" ключа 'images', // это название текущей таблицы 'goodId', // это имя поля в текущей таблице, которое будет ключом 'goods', // это имя таблицы, с которой хотим связаться 'id', // это поле таблицы, с которым хотим связаться 'CASCADE' ); } public function down() { $this->dropTable('images'); //Добавляем удаление внешнего ключа $this->dropForeignKey( 'goodId', 'goods' ); } }
- Применяем миграцию с помощью команды
./yii migrate
Как решить возможные ошибки смотри здесь.
- Log in to post comments
- 12144 reads
vedro-compota
Mon, 04/16/2018 - 17:09
Permalink
создание внешнего ключа в миграции
Что более подробно, чем в примере выше, например:
документация по методу: https://www.yiiframework.com/doc/api/2.0...()-detail
_____________
матфак вгу и остальная классика =)