小编Kok*_*ers的帖子

表单构建器中的关联数组字段 - Symfony3

让我们从背景开始.

我需要具有基本信息的用户个人资料,如姓名,电子邮件,电话等.为此,我有一个实体用户.

我还需要存储调查问卷的答案.我想将它们作为文本字段中的json存储在数据库中.这些问题将来可能会发生变化,目前有大约30个问题,所以我不想将其存储为实体.所以目前在我的用户实体中我有这个:

/**
 * @var array
 *
 * @ORM\Column(name="questionnaire", type="json_array", nullable=true)
 */
private $questionnaire;
Run Code Online (Sandbox Code Playgroud)

我知道Symfony会处理json_encode/json_decode的事情.所以这很棒.

但是现在,我在使用symfony构建器创建表单时遇到了一些问题.

首先,我想我可以尝试这样的事情:

$builder->add('questionnaire[source]');
Run Code Online (Sandbox Code Playgroud)

哪个不起作用.对于symfony大师来说,我知道这很明显; o)

所以我目前的选择是:CollectionType或Data Transformers.

从我看到,CollectionType将无法工作,因为它只适用于数字数组,其中我们有一些JS"添加另一行"或其他东西.http://symfony.com/doc/current/reference/forms/types/collection.html#adding-and-removing-items但如果我对此错了,我应该选择CollectionType并且有一些神奇的方法请告诉我.我找不到这个.

所以我在考虑使用Data Transformers或者只是在没有这个Transformer的情况下在提交时创建一个数组.使用"mapped => false"创建问卷调查中的所有字段,然后将这些提交的值设置为$ questionnaire的关联数组.这种"感觉"还可以,但我不知道如何在"编辑"表单中处理这个问题(从我想到的文档http://symfony.com/doc/current/reference/forms/types/form.html #data).

问卷调查本身将有许多ChoiceType字段,一个CollectionType与"添加更多行"等等,它将有很多问题.所以它会有点复杂.我想避免为每个问题作为一个属性创建实体(不确定它是否是一个正确的选择,但考虑到我认为它是最好的一切).

这是我与symfony的第一次约会,所以任何帮助/小贴士都会欣赏.

php forms symfony

8
推荐指数
1
解决办法
2361
查看次数

没有高度的两列之间的边界

我有两列,我需要在它们之间添加一行.这是1px纯色,所以我很想用css实现这一点.诀窍是内容是动态加载的,因此有时左列可以有更多文本,有时右列可以有更多文本.当然,如果库仑的大小总是相同的,我会将边界添加到更大的边界.但不幸的是,我没有.

那么有没有办法实现这一点,或者我已经将它与PHP结合,也许是strlen或者什么?

你可以在这里找到这个问题的简单代码http://jsfiddle.net/M9TSs/

html css

6
推荐指数
1
解决办法
1202
查看次数

标签 统计

css ×1

forms ×1

html ×1

php ×1

symfony ×1