【问题标题】:symfony 1.4 and php switch casesymfony 1.4 和 php 切换案例
【发布时间】:2014-06-20 02:54:03
【问题描述】:

在我的数据库中,我有一列 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 语句,但失败了。我尝试在互联网上搜索一些示例,但没有找到任何人..

【问题讨论】:

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

标签: php mysql symfony1


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-26
    相关资源
    最近更新 更多