Лучшее решение, которое я могу придумать, - это создать «абстрактную» сущность, которая будет суммировать все поля, необходимые для данного клиента.
/**
** @ORM\Entity()
*/
class RegistrationFormField {
// ...
/** @ORM\Column(type="string") **/
private $fieldName;
/** @ORM\Column(type="string") **/
private $fieldType;
/** @ORM\Column(type="boolean") **/
private $required;
/** @ORM\ManyToOne(targetEntity="App\Entity\Client") **/
private $client;
// ...
}
Я бы создал эту сущность со всеми обязательными полями, чтобы иметь возможность создать соответствующую регистрационную форму:
$fields = $em->getRepository(RegistrationFormField::class)->findBy(['client' => $client]);
$form = $this->createFormBuilder();
foreach ($fields as $field) {
$form->add($field->getFieldName(), $field->getFieldType(), [
'required' => $field->getRequired()
]);
}