我想要显示字段来呈现永远不会被更改或提交的数据。是否有可能在Symfony2中只显示字段类型?
类似于bootstrap's static controls。
我需要在不破坏窗体结构或样式的情况下在窗体中显示对象数据。我希望这些数据使用与其他所有输入相同的模板,但不要将其渲染为动态输入。
我想到了实现这一目标的几种方法,其中一些是简单的黑客攻击,其他一些似乎更合理,但我不知道是否有更标准的方法来做到这一点。
下面是我在没有特定的顺序想到的选项列表:
使用只读的域属性:它不觉得很不错,我不希望用户觉得他们可以改变一些东西,但是由于某种原因他们是不允许的。
黑客模板输出的东西除了输入元素:似乎对我来说很讨厌,除了有必要处理服务器端提交缺少的字段。
扩展字段类型以创建它们的仅显示版本。我不认为这是安全的。
编写自定义fieldType来完成这项工作。该选项可以很好地用作其他字段的基本类型。
我认为最好的办法是要么选择3或4 我还没有发现的唯一的事情是如何处理上提交缺失的领域。
我认为有这种类型的字段很重要,因为它允许重用表单类型逻辑。否则,我写出来看起来像这样的细枝模板:
<form>
{# This is the average writtable field #}
{{ form_row(form.field1) }}
{# This is the display-only field, notice I have to replicate
markup. Even if I wrote a macro, which I did, I would still
have to replicate markup in the macro.
#}
<label>Field 2</label>
<div>{{ the_object.field2 }}</div>
</form>
最后,没有任何人有一个更好的主意或认为这种做法是完全有缺陷?