我想要顯示字段來呈現永遠不會被更改或提交的數據。是否有可能在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>
最後,沒有任何人有一個更好的主意或認爲這種做法是完全有缺陷?