2012-07-24 13 views
1

我在表單上有幾個字段,如name,description,timestamp。 現在在表單中,我只顯示名稱和說明,但沒有時間戳。如果不可見,symfony表單字段是否初始化爲空

public function __construct() 
{ 
    $this->setTimestamp(new \DateTime()); 
} 

現在在我的數據庫中,它是空的。

任何一種教義都沒有執行構造函數,或者這些字段在窗體中顯示時都設置爲null。 即使我沒有顯示它們。

+0

您的時間戳屬性未包含在窗體中,還是設置爲隱藏字段? – dbrumann 2012-07-24 07:33:14

+0

我在模板中使用'{{form_row(form.name)}}'。所以我只顯示必填字段。他們不是形式。我不知道他們是否隱藏 – user825904 2012-07-24 07:38:37

+0

那麼,如果時間戳不在您的表格中,那麼它不會在您的實體中結束。需要將其添加爲隱藏字段。但是,我懷疑你確實希望實體自己照顧時間標記。也許不會。取決於你的用例。 – Cerad 2012-07-24 14:07:59

回答

0

您需要將時間戳字段放在FormType中。

如果您不需要顯示它,只需隱藏該字段並設置默認值即可。

類似的東西:

$builder->add('timestamp', 'hidden', array(
    'data' => new \DateTime(), 
)); 

在樹枝模板結束別忘{{form_rest(form)}}發送所有隱藏字段。

+0

但是,如果我使用信封並更改該值,該怎麼辦 – user825904 2012-08-10 03:48:23

+0

您的請求的驗證需要在客戶端和服務器上進行。服務器驗證應該防止這種螢火蟲行爲。搜索一下=) – Munir 2012-08-13 11:42:40

相關問題