symfony 1.4和php开关盒

symfony 1.4和php开关盒,php,mysql,symfony1,Php,Mysql,Symfony1,在我的数据库中,有一列enum…column_name=enum('column1',column2','column3')) 在我的行动中 public function executeView_collection_details(sfWebRequest $r) { $collection = Doctrine_Core::getTable('Collections')->findOneById($r->getParameter('id')); $data =

在我的数据库中,有一列enum…column_name=enum('column1',column2','column3')) 在我的行动中

public function executeView_collection_details(sfWebRequest $r) {
    $collection = Doctrine_Core::getTable('Collections')->findOneById($r->getParameter('id'));
    $data = array();
    $this->setLayout(false);
    switch($collection->mode_of_payment) {
        case 'Column1':
            $obj = $collection->Column1;
            $data = array(
                    //.....
            );
            break;
        case 'Column2':
            $obj = $collection->Column2;
            $data = array(
                    //.......
            );
            break;
        case 'Column3':
            $obj = $collection->Column3[0];
            $data = array(
                    //.....
            );
            break;
    }

    $this->data = $data;
}

我添加了另一个列名术语int(4)。我不想在mysql中添加为枚举,因为用户将以表单的形式手动添加它们,我的意思是此列的值将由用户添加。此列值表示付款天数(40,60,90…天)。我的问题是,是否可以在此列(术语)的操作中添加switch语句?我只想显示每个值的行数,例如,40天将打印一个固定行数为40的表。我尝试了foreach语句,但失败。我尝试在internet上搜索一些示例,但没有找到任何一行。

而不是switch,为什么不使用getFieldNames()symfony本机函数转到每个字段

$fn = TablePeer::getFieldNames();
$lists = TablePeer::doSelect($c);
$a = array();
$data = array();
$v = 0;         
foreach($lists as $list){               
    foreach($fn as $f){
        $function = "get$f";
        $a[$f] = $list->$function();
    }
    $data[$v] = $a;
    $v++;
}
return $data;

将TablePeer替换为您的Table name Peer。

您是说您需要一个HTML表格,根据列
术语
的值,表格中有40,60,90行?假设这是正确的,for语句将是创建具有该行数的表的最合乎逻辑的方法。@Jester是的,我需要一个基于列值(term)的具有40、60、90行的HTML表。我可以使用foreach语句显示表。但我需要的是每个列值的固定行数,由于该表中有一个日期列,如果在某些日期未收到付款,我想显示一些字符串,如“此日期未付款”。明天我将尝试使用for语句