2010-08-05 50 views
1

我正在處理一系列具有嵌入到它們中的子表單的表單,並試圖解決如果我可以讓getValues返回沒有數組表示形式的值。Zend_Form_SubForm扁平化數組表示法getValues()

即:

$form = new Zend_Form(); 
$subForm = new Zend_Form_SubForm(); 
$form->addSubForm($subForm, 'contact'); 

$form->addElement(new Zend_Form_Element_Text('name')); 
$subForm->addElement(new Zend_Form_Element_Text('phone')); 

var_dump($form->getValues()); 

給我的輸出:

array(2) { 
    ["name"]=> 
    NULL 
    ["contact"]=> 
    array(1) { 
    ["phone"]=> 
    NULL 
    } 
} 

但我真的喜歡的輸出是:

array(2) { 
    ["name"]=> 
    NULL 
    ["phone"]=> 
    NULL 
} 

這樣做沒有覆蓋的任何簡單的方法Zend_Form函數?

回答

1

像這樣的東西可能是一個開始:

$data = array(); 
foreach ($form->getSubForms() as $subform) { 
    $data += $subform->getValues(); 
} 
3

您可以通過使用做到這一點很簡單:

$subform->setIsArray(false);