2011-05-02 55 views
0

我在typo3上使用表單的流體模板,並在我的擴展模型中使用帶有註釋的例如valdiation。Typo3 Extbase問題:驗證錯誤返回值爲空

@validate StringLength(minimum=3, maximum=50) 

如果窗體產生了錯誤,那麼extbase顯示我的窗體上的錯誤。那就對了。 ,因爲我的表單上的輸入在返回後是空的。 如果我調試的對象,這也是空的。

這是我在我的控制器功能:

public function standardAction() { 
} 

而且這是我在我的standard.html模板形式:

action="standardcreate" name="newStandard" object="{newStandard}" 
    method="post" enctype="multipart/form-data"> 

{newStandard}也是空的?爲什麼?

我會回饋我的表格的值。

回答

1

嘿,首先,你如何獲取數據並驗證你的模型?

處理這個問題的最好方法是使用兩個動作,它們都有一個$ myModel對象作爲參數,第一個顯示錶單並在動作中有一個@dontvalidate註釋,第二個用於在驗證成功時保存數據。你的表單應該有第二個動作作爲目標。

因此,Extbase在這種情況下會做什麼:formdata將進入第二個動作並嘗試驗證,由於您提供了錯誤數據,驗證失敗,但extbase也會發送在內部顯示錶單的動作並返回該行動。因爲第一個動作有@donotvalidate註解,所以它會接受帶有「錯誤」值的模型,所以你可以將它傳遞迴模板。