有没有办法自动创建关系?
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,否则关系将不起作用。