Постобработка формы в Symfony2Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Постобработка формы в Symfony2

Сообщение Anonymous »

Я новичок в Symfony и пытаюсь создать форму, привязанную к сущности Пользователь.

Одно поле этой сущности имеет тип ArrayCollection. На самом деле это связь OneToMany с объектами другого класса.
Итак, немного кода, чтобы было понятнее.

Код: Выделить всё

class User
{
\\...

/**
* @ORM\OneToMany(targetEntity="UserGoods", mappedBy="users")
* @ORM\JoinColumn(name="goods", referencedColumnName="id")
*/
private $goods;

public function __construct()
{
$this->goods = new ArrayCollection();
}

\\...

}
И связанный класс

Код: Выделить всё

class UserGoods
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;

/**
* @var \DateTime
*
* @ORM\Column(name="inserted_at", type="datetime")
*/
private $insertedAt;

/**
* @var float
*
* @ORM\Column(name="value", type="float")
*/
private $value;

/**
* @ORM\ManyToOne(targetEntity="User", inversedBy="goods")
*/
protected $users;

}
Теперь я хочу создать FormBuilder, который делает что-то очень простое, но я не мог понять, как это сделать самостоятельно. .
Мне нужно просто поле типа номер, и если объект типа Товар с текущей датой существует, измените его, в противном случае добавьте новый объект в коллекцию.

Это можно было бы легко сделать внутри контроллера, но у меня много экземпляров этой формы, и это сделало бы мою программу невозможно поддерживать.

Есть ли способ добавить постобработку отправленных данных в конструктор форм?
Я уже пробовал использовать DataTransformers, но этого будет недостаточно, так как в лучшем случае они преобразуют число в объект UserGoods, а исходный ArrayCollection не будет сохранен (а как насчет доктринальных ассоциаций?).
Кроме того, если я объявлю тип поля как коллекцию числовых типов, при отрисовке формы будут отображаться все элементы внутри ArrayCollection, а не только последний.

Есть идеи, как из этого выйти?
Заранее благодарим за помощь.

Подробнее здесь: https://stackoverflow.com/questions/263 ... n-symfony2
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»