让我们从背景开始.
我需要具有基本信息的用户个人资料,如姓名,电子邮件,电话等.为此,我有一个实体用户.
我还需要存储调查问卷的答案.我想将它们作为文本字段中的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的第一次约会,所以任何帮助/小贴士都会欣赏.
我有两列,我需要在它们之间添加一行.这是1px纯色,所以我很想用css实现这一点.诀窍是内容是动态加载的,因此有时左列可以有更多文本,有时右列可以有更多文本.当然,如果库仑的大小总是相同的,我会将边界添加到更大的边界.但不幸的是,我没有.
那么有没有办法实现这一点,或者我已经将它与PHP结合,也许是strlen或者什么?
你可以在这里找到这个问题的简单代码http://jsfiddle.net/M9TSs/