Я хотел бы создать форму на основе динамических параметров, которые хранятся в БД. Поэтому я создал объект, называемый параметром, который определяет имя параметра, которое должно отображаться как ярлык поля формы.
/**
* @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 не является параметром.