如何在 Yii 中自动创建关系


How to create relations automaticly in Yii?

有没有办法自动创建关系?

CREATE TABLE `user` (`id` BIGINT AUTO_INCREMENT, `name` VARCHAR(255) NOT NULL, PRIMARY KEY(`id`)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = INNODB;

CREATE TABLE `profile` (`id` BIGINT AUTO_INCREMENT, `user_id` BIGINT, `photo` VARCHAR(255), INDEX `user_id_idx` (`user_id`), PRIMARY KEY(`id`)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = INNODB;

ALTER TABLE `profile` ADD CONSTRAINT `profile_user_id_user_id` FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) ON DELETE CASCADE;

当我通过 gii 生成模型时,它不会建立关系。

首先通过在所需的字段上添加外键来创建数据库中的关系。如果你让 Gii 在完成此操作后创建一个模型,它应该识别外键,它会根据你设置的外键将关系添加到模型中。

如果没有,请在使用 Gii 创建模型后发布您的模型。

在 db 中的表中创建关系。确保正确定义了主键和外键。数据库准备就绪后,使用 gii 工具创建模型,它将自动创建关系。请务必检查,因为有时它会弄乱关系,尤其是 1:n、n:n 关系,您可能需要进行一些编辑(但时代之母它会正常工作。此外,如果您使用的是mysql,请确保表引擎是innodb,否则关系将不起作用。