在我的数据库中,我有一个列枚举... 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语句但失败了。我试着用谷歌搜索一些关于互联网的例子发现没人...
答案 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。