Symfony: способ показать / скрыть строки списка в действии? - PullRequest
2 голосов
/ 24 августа 2011

Я пытаюсь создать набор действий, которые работают аналогично действию Index, но они показывают отфильтрованные данные (какие-то готовые отчеты).

Пока что я понял что-то вроде этого: *

public function executeReport(sfWebRequest $request)
{ 
  $this->setFilters(array('field'=>'value'));

  $this->forward($this->getModuleName(), 'index');
}

но я также хочу изменить набор столбцов.

Набор по умолчанию хранится в generator.yml

generator:
  param:
    config:
      list:
        display: [field1, field2, field3]

. Есть ли способ установить только видимые field2 и field3внутри executeReport()?

Ответы [ 3 ]

1 голос
/ 25 августа 2011

Вы можете переопределить конфигурацию вашего генератора в module / lib / moduleGeneratorConfiguration.class.php:

Метод, используемый для извлечения полей, таков:

public function getListDisplay()
{
  return array('field2','field3');
}

Я не проверял это, но вы должны иметь возможность переопределить это с другими значениями, как это:

public function getListDisplay()
{
  return sfConfig::get('app_my_columns');
}
0 голосов
/ 25 августа 2011

возможно я ошибаюсь, но если вы скрываете атрибуты, то не скрываете ни одной строки, вы будете скрывать столбцы. Чтобы скрыть / показать строки, вы можете сделать это в файле шаблона со структурой, подобной этой:

foreach($row_you_can_show as $row){
    if(you_want_to_show($row)){
         echo "<tr>...</tr>";
    }
}

Если вы хотите управлять им динамически, вы можете сделать это с помощью функции javascript, но это более сложно ....

удачи

0 голосов
/ 25 августа 2011

Измените ваш шаблон ReportSuccess.php только с теми полями, которые вам нужны.

...