如何在Yii中自动创建关系?

时间:2013-09-30 12:47:52

标签: php 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生成模型时,它不会构建关系。

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

在db中创建表中的关系。确保正确定义了主键和外键。数据库准备就绪后,使用gii工具创建模型,它将自动创建关系。确保检查,因为有时它会弄乱关系,特别是1:n,n:n关系,你可能需要做一些编辑(但是它会正常工作的时间。还有,如果你正在使用mysql确保表引擎是innodb,否则关系将无效。