Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Аналог %%other_table%% для НЕ stacked layout


Автор: WIPS 12.3.2010, 08:49
Собственно сгенерировали мы админку, и теперь в списке нам нужно чтобы вместо id-шек отображались названия записей на которые есть ссылка из таблицы, список записей кот. мы сейчас просматриваем.

Документация symfony описывает это очень просто:
Код

# config/generator.yml

generator:
  class: sfDoctrineGenerator
  param:
    config:
        list:    
          layout: stacked
          display: [id, id_of_other_table_record, field_name_1, field_name_2]            
          params: |
              %%id%%, %%name_of_other_table%%, %%field_name_1%%, %%field_name_2%%


И все работает, и все бы ничего... только мне нужно отображать те же данные, но не в stacked layout (в данном случае через запятую), а обычными столбиками, как если бы строки layout: stacked не было. Если строку убрать, то в колонке id_of_other_table_record снова показывается id-шник, а не имя записи из таблицы на кот. этот id ссылается.

Как сделать, чтобы при выводе столбиками видеть не id, а тоже, что и в stacked? В доке нет описания, полного описания настроек symfony тоже нигде нет :(.

Автор: WIPS 12.3.2010, 09:06
Нашел решение http://translated.by/you/the-definitive-guide-to-symfony-chapter-14-admin-generator/into-ru/?page=2.

В класс, кот. отвечает за таблицу, список записей которой мы сейчас показываем добавляем метод:
Код

class MyTable extends BaseMyTable
{
    public function getOtherTableName() {
        return $this->getOtherTable()->getName();
    }
}


И изменяем конфиг:
Код

# config/generator.yml

generator:
  class: sfDoctrineGenerator
  param:
    config:
        list:    
          display: [id, other_table_name, field_name_1, field_name_2]     

Автор: brother79 6.5.2010, 09:06
Цитата(WIPS @  12.3.2010,  12:49 Найти цитируемый пост)
И все работает, и все бы ничего... только мне нужно отображать те же данные, но не в stacked layout (в данном случае через запятую), а обычными столбиками, как если бы строки layout: stacked не было. Если строку убрать, то в колонке id_of_other_table_record снова показывается id-шник, а не имя записи из таблицы на кот. этот id ссылается.



Жалко не привёл версию симфони. Я пользуюсь 1.4 сейчас, там весь вывод экранируется по умолчанию, в связи с чем через модель ты html код не получишь, он проэкранируется в табличном лэйоуте, для этого надо в generator.yml указывать св-во is_partial или is_component в true, тогда можно подсовывать свой шаблон и он будет его рендерить вместо столбца.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)