Вот моя ситуация, у меня есть 3 таблицы: студент | приложение | student _attachment_ link
Таблица студента связана с таблицей вложений через связь classRef с таблицей ссылок, как и таблица вложений к таблице Student.
relations:
Students:
class: Student
refClass: StudentAttachmentLink
local: attachment_id
foreign: student_id
relations:
Attachments:
class: Attachment
refClass: StudentAttachmentLink
local: student_id
foreign: attachment_id
Итак, что нужно, - это вложить форму приложения в форму студента, чтобы при редактировании студента у меня была возможность загрузить новый файл (вложение)
Я ушелчерез документацию, которая имеет фантастический пример Здесь
В этом примере они устанавливают подчиненную форму, а затем связывают формы, устанавливая текущий объект в новый, настраиваемый следующим образом:
public function configure()
{
$subForm = new sfForm();
for ($i = 0; $i < 2; $i++)
{
$productPhoto = new ProductPhoto();
$productPhoto->Product = $this->getObject();
$form = new ProductPhotoForm($productPhoto);
$subForm->embedForm($i, $form);
}
$this->embedForm('newPhotos', $subForm);
}
В этом примере вы можете видеть, что $ productPhoto-> Product = $ this-> getObject ();
устанавливает отношение, которое будет поддерживаться
Теперь секрет отя могу сказать, что это отношение «многие к одному», однако у меня есть отношение «многие ко многим», поэтому я делаю следующее:
public function configure()
{
$attachment = new Attachment();
$attachment->Student = $this->getObject();
$form = new AttachmentForm($attachment);
$this->embedForm('newFile',$form);
}
Это приводит к ошибке: Не удалось вызвать Doctrine_Core ::set (), второй аргумент должен быть экземпляром Doctrine_Collection при установке ссылок «многие ко многим».
Я явно сбит с толку, потому что я думал, что мой объект был Doctrine_Collection, любая помощь оченьприветствуется!
ОБНОВЛЕНИЕ:
Возможно, я задаю неправильный вопрос или обращаюсь к единственной точке отказа, которая имеет значение только частично.Я хочу добавить / удалить вложение из формы студента и связать его с этим студентом без необходимости настраивать действие formAction и save ().Я обнаружил, что с Symfony 1.4 я могу использовать:
$this->embedRelation('Attachments');
Эта работа фантастически подходит для редактирования большей части, мне все еще нужно немного поработать с ней, но я не могу добавить или удалить вложение изформа студента, которая, конечно, желаемый результат должен иметь возможность полностью контролировать вложения из формы студента, то есть добавлять / удалять / обновлять вложение.
Также приветствуются любые предложения о лучшем способе сделать это, то есть, если я просто добавлю ссылку «Добавить вложение» в форму студента, которая приведет меня на страницу «Вложение / новая страница», но если я это сделаю, то какпередать ли это текущему студенту, чтобы этот параметр можно было автоматизировать ... Мне нужно многое узнать об этой структуре: - /