EAV(实体-属性-值)数据建模/自定义数据库字段

时间:2019-06-03 11:49:18

标签: php symfony4 entity-attribute-value

我想创建自定义字段用户注册,登录和配置文件管理系统。

我有多个客户。每个客户都希望在“注册”表单中使用不同的字段  并且这些字段的选择完全取决于客户的选择,对于个人资料或登录页面,此行为将相同。

从昨天开始,我一直在搜索可以执行这些操作的库或捆绑软件。

有人对此有任何想法吗?

1 个答案:

答案 0 :(得分:0)

我能想到的最好的解决方案是创建一个“抽象”实体,该实体将汇总给定客户端所需的所有字段。

/**
** @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()
    ]);
} 
相关问题