gpt4 book ai didi

forms - Symfony2 中是否可以有仅显示字段类型?

转载 作者:行者123 更新时间:2023-12-02 06:19:09 24 4
gpt4 key购买 nike

我想要仅显示字段来呈现永远不会更改或提交的数据。

类似于bootstrap's static controls .

我需要在表单中显示对象数据而不破坏表单结构或样式。我希望此数据使用与所有其他输入相同的模板,但不将其呈现为动态输入。

我想了几种方法来实现这一点,有些是简单的黑客,有些看起来更合法,但我想知道是否有更标准的方法来做到这一点。

以下是我想到的选项列表(排名不分先后):

  1. 对字段使用只读属性:感觉不太好,我不想让用户觉得他们可以更改某些内容,但由于某种原因不允许这样做。

  2. 破解模板以输出输入元素以外的内容:对我来说似乎非常令人讨厌,此外还需要在服务器端处理提交时缺少的字段。

  3. 扩展字段类型以创建它们的仅显示版本。我认为这不安全。

  4. 编写自定义 fieldType 来完成这项工作。此选项非常适合用作其他字段的基本类型。

我认为最好的解决方案是选项 3 或 4。我唯一还没有找到的是如何处理提交时丢失的字段。

我认为拥有这种类型的字段很重要,因为它允许重用表单类型逻辑。否则我最终会编写如下所示的 Twig 模板:

<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>

最后,是否有人有更好的想法或认为这种方法完全有缺陷?

最佳答案

您可以使用disabled属性:

{{ form_row(form.field1, {'attr': {'disabled': 'disabled'}}) }} 

另请参阅How to Dynamically Generate Forms Using Form Events食谱条目。

关于forms - Symfony2 中是否可以有仅显示字段类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10135856/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com