2012-08-07 60 views
1

返回在我的模型Zend的格式錯誤的消息沒有從功能

$form = new \Zend_Form(); 
$form->addElement('text', 'name', array(
     'validators' => array(
      array('NotEmpty', true), 
      array("stringLength", true, array(1,40)) 
     ), 
     'required'  => true, 
     'label'   => "Name", 
    )); 
return $form; 

在我的控制器,叫上面的模型功能

if($form->isValid($_POST)) { 
    .... 
} else { 
$form = Product::getForm(); 
print_r($form->getErrors()); 
print_r($form->getErrorMessages()); 
print_r($form->getMessages()); 
} 

我使用Zend框架。

這裏在名稱字段的形式中,字符串超過40個字符需要顯示錯誤消息。

我試着用getErrors()getErrorMessages()得到錯誤。但是這些功能都沒有給我錯誤。 它在打印這些函數時返回一個空數組。

請幫我解決這個問題......直到你叫isValid()的形式,像這樣

$form = Product::getForm(); 

if(!$form->isValid($_POST)) 
{ 
    print_r($form->getErrors()); 
    print_r($form->getErrorMessages()); 
    print_r($form->getMessages());   
} 
+0

沒問題,值得一提的是它很低。 – 2012-08-07 11:07:41

回答

3

爲什麼讓你這個電話

+0

提供給模型的代碼是'function getForm()' – 2012-08-07 10:43:59

+2

@Justin:Thargor是對的。你的控制器序列以一個'$ form'實例開始,但是在你調用'$ form = Product :: getForm()'之後,你正在爆炸舊錶單並創建一個新表單。 – 2012-08-07 13:11:33

2

錯誤信息不會在那裏:

$form = Product::getForm(); 

因此你用它的錯誤信息覆蓋舊的$ form變量。嘗試沒有這些線。

+0

已經是這種格式的代碼...我編輯了這個問題。 – 2012-08-07 10:25:38

+0

啊,原來的問題不是那種格式。你的'Product :: getForm()'覆蓋'isValid()'?或者其他任何功能?如果您將該字段留空,是否會觸發'NotEmpty'錯誤? – 2012-08-07 10:32:20

+0

爲模型提供的代碼是'function getForm()'。我不認爲它會覆蓋'$ form'。 – 2012-08-07 10:38:47

相關問題