схема:
User: options: collate: utf8_unicode_ci charset: utf8 tableName: users columns: ID: type: integer(4) primary: true autoincrement: true USERNAME: type: string(255) notnull: true Task: options: collate: utf8_unicode_ci charset: utf8 tableName: tasks columns: ID: type: integer(4) primary: true autoincrement: true CREATED_ID: type: integer(4) notnull: true OWNER_ID: type: integer(4) notnull: true DESCRIPTION: type: text notnull: true relations: User: onDelete: CASCADE local: CREATED_ID foreign: ID User: onDelete: CASCADE local: OWNER_ID foreign: ID
как вы видите, объекты Task.OWNER_ID и Task.CREATED_ID указывают на User.ID. Тем не менее, только только OWNER_ID отображается как внешний ключ в фактической таблице SQL:
CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) COLLATE utf8_unicode_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; CREATE TABLE `tasks` ( `id` int(11) NOT NULL AUTO_INCREMENT, `created_id` int(11) NOT NULL, `owner_id` int(11) NOT NULL, `description` text COLLATE utf8_unicode_ci NOT NULL, PRIMARY KEY (`id`), KEY `owner_id_idx` (`owner_id`), CONSTRAINT `tasks_owner_id_users_id` FOREIGN KEY (`owner_id`) REFERENCES `users` (`id`) ON DELETE CASCADE, ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Symfony не оставляет никаких ошибок. Разве мне не разрешено определять больше присоединения к таблице?
Ваша схема … не совсем правильная. Попробуй это
relations: UserCreator: class: User onDelete: CASCADE local: CREATED_ID foreign: ID foreignAlias: Tasks UserOwner: class: User onDelete: CASCADE local: OWNER_ID foreign: ID foreignAlias: Tasks