1

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

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 生成模型时,它不会建立关系。

4

2 回答 2

0

在 db 中的表之间创建关系。确保正确定义了主键和外键。准备好数据库后,使用 gii 工具创建模型,它会自动创建关系。一定要检查一下,因为有时它会弄乱关系,尤其是 1:n、n:n 关系,你可能需要做一些编辑(但大多数时候它会正常工作。另外,如果你正在使用mysql 确保表引擎是 innodb 否则关系将不起作用。

于 2013-09-30T14:50:33.960 回答
0

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

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

于 2013-09-30T12:56:50.187 回答