Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [symfony]Filtry w admin generatorze
Forum PHP.pl > Forum > PHP > Frameworki
Cysiaczek
Wiem, że szansa jest nikła, ale zapytam.

W wygenerowanym adminie w Symfony mam model Post, to którego mam powiązany model Comment.
Teraz tak,
Posiadam w pliku generator.yml wpis

Kod
      object_actions:
        _edit:        ~
        _delete:      ~
        addcomment:   { name: Add a comment, action: addComment, icon: backend/addcomment.png }
        listcomment:   { name: List comment, action: listComment, icon: backend/addcomment.png }


No i super. Dopisałem sobie akcję addComment, która działa poprawnie.
  1. <?php
  2. public function executeAddComment()
  3. {
  4. $comment = new Comment();
  5. $comment->setOwnerId($this->getRequestParameter('id'));
  6. $comment->save();
  7.  
  8. $this->redirect('comment/edit?id='.$comment->getId());
  9. }
  10. ?>


Teraz problem mam z listComments, bo chce wylistować tylko komentarze do wybranego Posta. Niestety, komentarze pokazuje, ale wszystkie.
  1. <?php
  2. public function executeListComment()
  3. {
  4. $owner_id=$this->getRequestParameter('id');
  5. // tak kombinuje ;/
  6.  $this->redirect('comment/list?filter=filter&filters[owner_id]='.$owner_id);
  7.  $this->redirect('comment/list?filter=filters[owner_id]='.$owner_id);
  8. }
  9. ?>


Jeśli ktoś miał z tym do czynienia i może mnie naprowadzić, to będę wdzięczny

Powyższe funkcjonalności są opisane w dokumentacji, ale niestety. Teoria swoją drogą, praktyka swoją ;/

Pozdrawiam.
sticker
Dobra przyznam sie jak ja to robie winksmiley.jpg w generatorze dodaj do znacznika filters w module generującym informacje na podstawie modelu komentarzy filtr dotyczący owner_id (jak rozumiem to jest numer posta któremu przyporządkowane są komentarze). Jak Ci sie wyświetli wygenerowany filtr uzyj go i zobacz jaki url będzie generował i sobie go wklej do swojej metody list comment (oczywiście pomin inne parametry które są zbędne) . I teraz tak, musisz z cache wyciągnąć wygenerowaną metodę filtrującą dla modułu opartego o model komentarzy i wkleić ją do swojej aplikacji - to dlatego że jeśli nie zdefiniujesz filtra w generatorze po prostu kod sie nie wygeneruje do tego typu filtrowania i dlatego nie widzisz żeby zadziałał. To chyba powinno wystarczyć w razie pytań pisz smile.gif
Cysiaczek
Rzeczywiście. Dzięki, taka empiryczna metoda jest niezła i przyda się na przyszłość ;p
W sumie to zadziałało
  1. <?php
  2. $this->redirect('comment/list?filter=filter&filters[owner_id]='.$owner_id);
  3. ?>


Nie wiem dlaczego wcześniej nie chciało, ale zapewne była to wina cechu.

Pozdrawiam.

--edit
Już wiem, dlaczego teraz działa. Dlatego, ze dodałem w pliku konfiguracyjnym wyświetlanie filtrów w komentarzach...
ehh... skomplikowane to ;p
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.