2014-06-20 10 views
0

В моей базе данных, у меня есть столбец, который перечисление ... column_name = перечисление ('column1', column2' , 'колонка3') и в моем действии,Symfony 1.4 и переключатель PHP случай

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; 
} 

Я добавил еще один термин name name (4) .I не хочу добавлять в качестве перечисления в mysql, так как пользователь будет добавлять их вручную в форме, что я имею в виду, это значение для этого столбца будет добавлено пользователем. Эти значения столбца (40,60,90 ... дней) Мой вопрос в том, можно ли добавить оператор switch в действие для этого столбца (термин)? Я хочу отображать только количество строк для каждого значения, например, 40 дней распечатывают таблицу с фиксированным количеством 40 строк. И я попробовал сделать заявление, но не смог. Я попытался выполнить поиск в googling f или некоторые примеры в Интернете не нашли никого ..

+0

Вы говорите, что вам нужна таблица HTML с 40,60,90 строками в ней на основе значения столбца 'term'? Предполагая, что это правильно, оператор for является наиболее логичным способом создания таблицы с таким количеством строк. – Jestep

+0

@Jester Да, мне нужна таблица HTML с 40,60,90 строк на основе значения столбца (термин). Я могу отобразить таблицу с помощью инструкции foreach. Но я хочу, чтобы фиксированное количество строк для каждого значения столбца , так как в этой таблице есть столбец даты, я хочу отобразить некоторые строки, такие как «без оплаты за эту дату», если они не являются платежами, полученными в определенные даты. Я попробую сделать заявление завтра – rai

ответ

0

Вместо переключения, почему бы вам не перейти в каждое поле с помощью функции getFieldNames() symfony native?

$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.

 Смежные вопросы

  • Нет связанных вопросов^_^