symfony 1.4和php switch case

时间:2014-06-20 02:54:04

标签: php mysql symfony1

在我的数据库中,我有一个列枚举... 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).i不想在mysql中添加枚举,因为用户将在表单中手动添加它们,我的意思是该列的值将由用户添加。此列值表示付款天数(40,60,90 ...天)我的问题是,是否可以在此列(术语)的操作中添加switch语句?我只想显示行数每个值,例如40天将打印一个固定的40行数的表。我尝试了foreach语句但失败了。我试着用谷歌搜索一些关于互联网的例子发现没人...

1 个答案:

答案 0 :(得分:0)

为什么不用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替换为您的表名Peer。