Hej,
mam pewien problem z podpięciem filtrowania do wyświetlania danych w adminie.
Ogólnie admin służy do zarządzania artykułami. Każdy artykuł może być napisany przez więcej niż 1 autora.
Formularz filtracji prezentuje się tak:
http://phpworkstation.com/filters.png
przy czym lista autorów jest tworzona poprzez partial:

apps/admin/modules/articles/templates/_author.php
  1. <?php use_helper('Object'); ?>
  2. <?php echo select_tag('filters[author_id]', objects_for_select(
  3. AuthorsPeer::doSelect(new Criteria()),
  4. 'getId',
  5. '__toString'
  6. )) ?>


Mój generator.yml przedstawia się tak:
  1. ...
  2. list:
  3. display: [title, description, created_at]
  4. filters: [title, created_at, visible, _author]
  5. object_actions:
  6. _edit: -
  7. _delete: -
  8. title: Artykuły
  9. fields:
  10. author:
  11. name: Author
  12. # questionmark.gif?
  13. ...


I co bym nie zrobił, jak bym nie próbował (related_class, through_class...) zawsze w rezultacie otrzymuje wynikowe zapytanie SQL bez kryterium autora tj. np.
  1. SELECT articles.ID, articles.TITLE, articles.DESCRIPTION, articles.CREATED_AT, articles.NOTE, articles.VISIBLE FROM articles WHERE articles.VISIBLE=1 LIMIT 20


Struktura i łączenia tabel wyglądają tak:
  1. articles (id, title...)
  2. authors (id, name...)
  3. articles_authors (article_id, author_id)


W jaki sposób dodać (i zmusić do działania) filtrowanie artykułów po autorze? Oraz w jaki sposób ustawić wartość aktualnie wybranej pozycji w selecie żeby nie pokazywała zawsze wartości początkowej (użyć po prostu $_GET?).

Pozdrawiam: pion

Z myślą o przyszłych pokoleniach:
http://www.symfony-project.com/snippets/snippet/41