Я хотел бы создать форму на основе динамических параметров, которые хранятся в БД. Итак, я создал сущность под названием Параметр, которая определяет имя параметра, которое должно отображаться как метка поля формы.
/**
* @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.
/**
* @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;
Как создать форму, которая динамически извлекает все параметры из БД, создает текстовые поля с определенными метками (label = Parameter- > getName ()) и получает ParameterValues для параметров, которые уже были связаны с компанией (для действия редактирования)?
Я уже создал поле «collection», которое получает ParameterValues, но проблема в том, что я получаю форму с полями для параметров, которые использовались для компании, но не для других. И, конечно, я не могу получить метку, потому что тип поля коллекции ParameterType не Parameter.
-121--1440183-При использовании распределенной и масштабируемой архитектуры часто требуется возможная согласованность.
Графически, как справиться с этой возможной непротиворечивостью?
Пользователи используются, чтобы нажать сохранить, и увидеть результат мгновенно... с возможной последовательностью это невозможно.
Как работать с графическим интерфейсом для таких сценариев?
Обратите внимание, что данный вопрос относится как к настольным приложениям, так и к веб-приложениям.
PS: Я работаю с платформой Microsoft, но, думаю, вопрос относится к любой технологии...