2
我目前正在開發一個項目,其中使用Zepel框架和Propel。針對Propel對象的Zend_Form創建
我要找的東西,會爲行走對象創建Zend_Forms,最好以類似的方式來Django的modelforms
有什麼在那裏,已經這樣做了,如果沒有,什麼是最好的怎麼去創造這樣的東西?
我目前正在開發一個項目,其中使用Zepel框架和Propel。針對Propel對象的Zend_Form創建
我要找的東西,會爲行走對象創建Zend_Forms,最好以類似的方式來Django的modelforms
有什麼在那裏,已經這樣做了,如果沒有,什麼是最好的怎麼去創造這樣的東西?
我的一個同事提供了以下爲「起點」
<?php
class TestController extends Zend_Controller_Action
{
public function indexAction()
{
$product_table = ProductPeer::getTableMap();
$product_columns = $product_table->getColumns();
$elements = array();
foreach($product_columns as $col_name => $col_data)
{
$col_name = ucwords(str_replace('_', ' ', strtolower($col_name)));
switch($col_data->getType())
{
case 'TINYINT':
$element = new Zend_Form_Element_Text(
$col_name,
array(
'label' => $col_name
)
);
break;
case 'SMALLINT':
$element = new Zend_Form_Element_Text(
$col_name,
array(
'label' => $col_name
)
);
break;
case 'INTEGER':
$element = new Zend_Form_Element_Text(
$col_name,
array(
'label' => $col_name
)
);
break;
case 'FLOAT':
$element = new Zend_Form_Element_Text(
$col_name,
array(
'label' => $col_name
)
);
break;
case 'DOUBLE':
$element = new Zend_Form_Element_Text(
$col_name,
array(
'label' => $col_name
)
);
break;
case 'VARCHAR':
$element = new Zend_Form_Element_Text(
$col_name,
array(
'label' => $col_name
)
);
break;
case 'DECIMAL':
$element = new Zend_Form_Element_Text(
$col_name,
array(
'label' => $col_name
)
);
break;
case 'LONGVARCHAR':
$element = new Zend_Form_Element_Text(
$col_name,
array(
'label' => $col_name
)
);
break;
case 'DATE':
$element = new Zend_Form_Element_Text(
$col_name,
array(
'label' => $col_name
)
);
break;
case 'TIMESTAMP':
$element = new Zend_Form_Element_Text(
$col_name,
array(
'label' => $col_name
)
);
break;
default:
die("Unknown colum type: " . $col_data->getType());
}
$elements[] = $element;
echo $element;
}
die("END");
}
}