У меня много часов, чтобы найти решение для сохранения внешнего ключа в материнской таблице.Я пытаюсь использовать встраивание отношений с Symfony 1.4 (у меня также есть AhDoctrineEasyEmbeddedRelationsPlugin).
Когда я читаю документацию Symfony здесь
http://www.symfony -project.org / more-with-symfony / 1_4 / ru / 06-Advanced-Forms
схема выглядит так:
Product:
columns:
name: { type: string(255), notnull: true }
price: { type: decimal, notnull: true }
ProductPhoto:
columns:
product_id: { type: integer }
filename: { type: string(255) }
caption: { type: string(255), notnull: true }
relations:
Product:
alias: Product
foreignType: many
foreignAlias: Photos
onDelete: cascade
embedRelation выглядит так:
// lib/form/doctrine/ProductForm.class.php
public function configure()
{
// ...
$this->embedRelation('Photos');
}
Inв моем случае я не могу сделать иначе, наоборот, продукт имеет ключи отношения, у меня есть что-то вроде этого:
Product:
columns:
name: { type: string(255), notnull: true }
price: { type: decimal, notnull: true }
photoid: { type: integer }
ownerid: { type: integer }
relations:
Photo:
local: photoid
foreign: id
type: one
Owner:
local: ownerid
foreign: id
type: one
Photo:
columns:
id : { type: integer }
filename: { type: string(255) }
caption: { type: string(255), notnull: true }
owner:
columns:
id : { type: integer }
firstname: { type: string(255) }
lastname: { type: string(255), notnull: true }
и embedRelation:
// lib/form/doctrine/ProductForm.class.php
public function configure()
{
// ...
$this->embedRelation('Photo');
$this->embedRelation('Owner');
}
И тамне являются виджетом, связанным с продуктом, таким как имя или цена для обновления в форме, а являются только информацией, поступающей из таблицы фотографий и владельцев.
Когда я сохраняю новую форму, фотография и объект владельца сохраняются в таблице, иидентификаторы создаются с последовательностями.Проблема в том, что продукт никогда не обновляется.photoid и ownerid остаются нулевыми.Это как встроенная форма Фотография и Владелец сохраняются после корневой формы.
Возможно ли в этом случае использовать embedrelation?Если тогда, как правильно сохранить внешние ключи в таблице Product, когда корневая форма сохраняется в processForm?В чем дело, спасибо за помощь.