КОНТЕКСТ:
Я хочу мое пользователи чтобы иметь возможность обновить или добавить свои Метки сделано в отношении некоторых ответ (сделано сообществом). Это стало возможным с сайта на веб-странице, где все ответы (соответствующие вопрос) и для каждого ответа отображаются отметки пользователя в стороне. (и только одна отметка пользователя)
СТРУКТУРА ЛИЧНОСТИ:
Tag (n)<——> (n) Вопрос (1)<—-> (n) Ответ (1)<—> (n) Оценки (n)<—-> (1) Пользователь
ТЕХНИЧЕСКИЙ ПОДХОД
Я извлекаю из базы данных все ответы, связанные с вопросом, и все оценки, связанные с этими ответами. Затем я изменяю свой объект ответа, чтобы сохранить только метки от текущего пользователя. Итак (на данном этапе) один ответ имеет только одну оценку.
МОЙ ВОПРОС
Я хотел бы знать, должен ли я использовать тип «коллекция» для создания своей формы, потому что две сущности «Ответ» и «Метки» связаны отношением onetoMANY, а мой текущий объект (после внесения изменений, который я сделал, как описано выше), является только одной меткой для каждый ответ. Я считаю, что использовать коллекцию намного сложнее, и в этом случае это не имеет никакого смысла, поскольку у меня будет только один атрибут Mark для любого ответа.
МОЙ КОД
// PART OF CLASS answertype
// --------------------------
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('marks', 'collection', array(
'type' => new MarkType(),
));
}
// PART OF CLASS marktype
// ----------------------
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('marks', 'choice', array(
'type' => new MarkType(),
));
}
Задача ещё не решена.
Других решений пока нет …