У меня есть родительский объект, называемый Publisher, и дочерний объект, называемый User с отношением ManyToMany.изменить только первый объект внутри встроенной коллекции
Внутри формы издателя, я хочу, чтобы создать/редактировать также первый пользователь, который я достичь так:
$builder
->add('title')
->add('users', 'collection', array(
'type' => new UserType(),
'allow_add' => true,
))
и в моем шаблоне веточку, я
{{ form_row(edit_form.users.0.firstname) }}
{{ form_row(edit_form.users.0.lastname) }}
{{ form_row(edit_form.users.0.email) }}
Это, очевидно, работает только до тех пор, пока только один пользователь назначается издателю, поскольку в противном случае symfony пытается проверить других пользователей, чьи данные отсутствуют.
Может ли кто-нибудь дать мне подсказку, как отредактировать только первый элемент пользователя в коллекции из формы издателя?
Не могли бы вы добавить элемент параметров в свой сборщик коллекций пользователей, ref: http://symfony.com/doc/current/reference/forms/types/collection.html#options Вы можете установить его как 'mapped => false' и справиться с этим, как вам нравится в вашем контроллере. – Rooneyl
Возможно, добавьте свойство Publisher :: firstUser и вообще не имеете дело с коллекцией. Я предполагаю, что вы явно индексируете свои пользовательские объекты, иначе понятие «первого пользователя» не имеет смысла. – Cerad
@Cerad: Разве пользователи [0] не всегда являются первой записью таблицы join publisher_user? Я не хочу, чтобы пользователь, который был впервые прикреплен к издателю, как бы я это сделал? – user2534194