Symfony2 - Как создать форму на основе динамических параметров из БД? (EAV)

Я хотел бы создать форму на основе динамических параметров, которые хранятся в БД. Поэтому я создал объект, называемый параметром, который определяет имя параметра, которое должно отображаться как ярлык поля формы.

/**
 * @ORM\Entity
 */
class Parameter
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;
    /**
     * @ORM\Column(type="string", length="255")
     * @Assert\NotBlank()
     */
    protected $name; 
    /**
     * @ORM\OneToMany(targetEntity="ParameterValue", mappedBy="parameter")
     */
    protected $values;

Значения параметров для определенного объекта (объект компании) собираются хранить в Parametervalue Tabel.

/**
 * @ORM\Entity
 */
class ParameterValue
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;
    /**
     * @ORM\ManyToOne(targetEntity="Parameter", inversedBy="values")
     * @ORM\JoinColumn(name="parameter_id", referencedColumnName="id", nullable=false)
     */
    protected $parameter;
    /**
     * @ORM\ManyToOne(targetEntity="Company", inversedBy="parameters")
     * @ORM\JoinColumn(name="company_id", referencedColumnName="id", nullable=false)
     */
    protected $company;

И, конечно же, объект компании содержит атрибут параметров, которые хранят только те параметры, которые были указаны для компании.

/**
 * @ORM\Entity
 */
class Company
{    
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;
    /**
     * @ORM\Column(type="string", length="255")
     */
    protected $name;
    /**
     * @ORM\OneToMany(targetEntity="ParameterValue", mappedBy="hotel")
     */
    protected $parameters;

Как я могу создать форму, которая динамически выбирает все параметры из БД, создает текстовые поля со специфическими метками (MALACT = PARAMETER-> Getname ()) и получают параметры для параметров, которые уже были связаны с компанией (для редактирования действий)?

Я уже создал поле «Collection», который получает Parametervalues, но проблема в том, что я получаю форму с полями для параметров, которые были использованы для компании, но нет других. И, конечно, я не могу получить этикетку, потому что тип поля поля Parametype не является параметром.

7
задан Wojciech Jasiński 6 September 2011 в 07:38
поделиться