2011-01-12 60 views
1

我已經使用了「doctrine:generate-admin」任務。一切正常,但我想使用generator.yml文件來取消設置一些表單字段,而不必在Form類本身中取消它們。像「updated_at」這樣的東西我只需要在對象更新時保存,但我不希望它們顯示在任何表單上,因此我不會得到任何表單驗證錯誤。symfony 1.4 admin發生器未設置字段

這可能嗎?我找不到發電機的參考頁面上的任何東西,它可以讓我這麼做,字段配置似乎只允許更改標籤/憑證等。

回答

7

您需要簡單地選擇要顯示的字段:

config: 
    form: 
    display: 
     Content: [title, body, author] 
     Admin: [is_published, expires_at] 

這很奇怪,你沒有在參考頁上找到它。這裏你去:http://www.symfony-project.org/reference/1_4/en/06-Admin-Generator(導航到表單 - >顯示)。

編輯:

管理髮生器使用sfModelGeneratorConfiguration :: getFormFields()方法來檢索領域呈現的清單。如果您不指定「顯示」選項,它只會佔用所有字段。

這是所有的領域呈現或只是其中的一些?如果它晚於你的表單中可能有重載的東西(例如configure()方法)。

1

除了躲在管理模塊的配置/ generator.yml中的字段,如上文所述,您應該取消或修改它們在相關表格。所以,如果你想隱藏created_at和一的updated_at模型Timestampable領域,改變的lib /表格/學說的configure()方法/ ModelForm.class.php到

public function configure() 
{ 
    unset($this['created_at'],$this['updated_at']); 
} 
+0

$這不是對象上下文數組。 –

+0

我們可以在Symfony 1.x文檔中找到對$ this的引用,特別是關於表單。 – Webler

+0

當試圖使用$ this作爲數組時,我得到「PHP致命錯誤:不能使用xxx類型的對象作爲數組」。你能分享一些運行的代碼嗎? –