Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SF][Symfony2] Uniwersalny szablon listy
Forum PHP.pl > Forum > PHP > Frameworki
404
Witam,

w administracji posiadam kilka widoków, na których po prostu listuje dane (np. użytkowników). Chciałbym stworzyć sobie jeden, uniwersalny i konfigurowalny szablon żeby nie kopiować w kółko tego samego kodu. Ok - zadanie nie trudne, ale gdzieś to wszystko trzeba zdefiniować: czy lista ma zawierać wyszukiwanie po danej kolumnie, czy na danej kolumnie ma być włączone sortowanie, czy wartość danego pola ma przejść przez jakieś makro przed wyświetleniem, czy wyświetlić link do danej akcji jeżeli wartość pola jest X itd. Pytanie - gdzie to zrobić? Napisać sobie jakiś ListGenerator (service), czy może definiować to wszystko w Twigu jako obiekt?
ziolo
Ja właśnie napisałem generator(Command).

Generuje mi nie tylko listę ale całego cruda dla danego modułu(tabeli). Wygodne, bo nie trzeba już nic kopiować w kółko tak jak mówisz.

Generowanie plików, wzorowałem się na np komendach wbudowanych (generowanie controllera, encji z doctrine).

404
Hm, tego typu rozwiązania w ogóle pod uwagę nie brałem, ale może coś by z tego było. Mi po głowie chodzi bardziej coś takiego:
  1. // src/Acme/Bundle/User/Controller/UserController.php, listAction
  2. $listGenerator = $this->get('listGenerator');
  3. $listGenerator->enableFilters();
  4.  
  5. $listGenerator->addColumn('Id', 'getId');
  6. $listGenerator->addColumn('Name', 'getName');
  7. $listGenerator->addColumn('Surname', 'getSurname');
  8. // ...
  9. $listGenerator->addAction('acme_user_edit', 'getId', ACTION_EDIT);
  10. $listGenerator->addAction('acme_user_delete', 'getId', ACTION_DELETE);
A potem w Twigu:
Kod
{{ listGenerator.render() }}
soszin
Tutaj z pomocą może przyjść DatatableBundle. Generujesz sobie dla konkretnej akcji konkretną tabelke, ustalajac w kontrolerze kolumny do wyswietlenia (na podstawie Entity) Ja polecam: AliChem,
Jedyny (na wiele testowanych) przypadl mi do gustu, ale ma rowniez swoje niedoskonałości. (Sam mam z nim jeszcze kilka problemow ale mam nadzieje ze jestem na dobrej drodze).

404
Na pierwszy rzut oka wygląda całkiem miło. Przyjrzę się bliżej i dam znać co i jak, dzięki! smile.gif
soszin
Jako że ja jestem zawsze za własnymi rozwiązaniami to aktualnie pisze wlasnego bundla do obslugi Datatable.
Jak skończe to udostepnie i podam link do repo.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.