Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony] przekierowanie na wcześniejszą strone
Forum PHP.pl > Forum > PHP > Frameworki
Gribo
Mam taki problem robię formularz do komentowania. i teraz mam problem bo chce żeby po zapisaniu komentarza do bazy przekierowało mnie na poprzednia stronę (tą z której został wysłany formularz). Próbowałem uzyc getreferer() ale zwraca mi ta metoda jedynie pusty string. Jest jakaś inna metoda która mogę użyć w redirect() ?
Crozin
Tak nie do końca na temat...
1) Po co formularz obsługujesz na innej stronie?
2) Ponieważ na REFERERze i tak nie można polegać lepiej jest zrobić normalne przekierowanie. ID komentowanego zasobu i tak na pewno przekazujesz w GET, więc wystarczy przykładowo:
  1. <?php
  2. $this->redirect('@movie?id=' . $request->getParameter('id'));
  3. ?>
Zrezygnowanie z REFERERa zwiększa szanse, że wykonanie przekierowania się powiedzie.
Gribo
mam strone strone taką : mojastrona/wydarzenia/tytul_wydarzenia.html

jest to strona gdzie prezentuje treść wiadomości pod która daje możliwość komentowania.
Robię to poprzez wstawienie komponentu w którym pobieram wszystkie komentarze do wybranej wiadomości
i pod pobranymi wiadomościami wstawiam partiala z formularzem do wysyłania komentarzy. Który ma akcje pod innym mojastrona/komentarze/dodaj.html
No i teraz jak już wszystko ładnie dodam do bazy to muszę jakos wrócić do poprzedniej strony z treścią wiadomości pod która zamieściłem komentarz. ale jak questionmark.gif

w tym problem że nie przekazuje id bo mam adresy porobione wg tylko tytułu. odwołuje sie do konkretnych wiadomości po slug'u
Crozin
Komentarze jako komponent nie wydają mi się najlepszym rozwiązaniem.
Do partiala możesz przekazać zmienną, która zawierałaby adres dla ACTION formularza - wskazuwałaby na aktualną podstronę - chociaż w sumie nawet pusta by mogła być

Hmmm... ale przecież na komentarze/dodaj i tak musisz mieć przekazany jakiś identyfikator (czy to w formie słownej czy klasycznego "id") - no, chyba, że w jakiś inny sposób rozpoznajesz dla którego to elementu jest komentarz.
Gribo
a jak byś zrobił komentarze nie korzystając z komponentów questionmark.gif

a co do problemu to troszkę przerobie geta i działa ok ale teraz mam pytanie apropo logowania mam proste logowanie zaimplementowane które jest widoczne na każdej stronie i jak zrobić by koleś który sie zaloguje po zalogowaniu został przekierowany na stronę na z której się zalogował ?

tu już przekazywanie jakich kolwiek danych getem raczej nie wchodzi w grę
Crozin
  1. <?php
  2.  
  3. public function executeIndex(sfWebRequest $request){
  4.   $this->news = Doctrine_Query::create()
  5.                 ->from('News n')
  6.                 ->leftJoin('n.Comments c')
  7.                 ->where('n.slug = ?', $request->getParameter('slug'));
  8.  
  9.   $this->forward404unless($this->news);
  10. }
  11. ?>
  1. <h2><?php echo $news ?></h2>
  2. <p>Created: <?php echo $news->created_at ?></p>
  3.  
  4. <h4>Comments:</h4>
  5. <ul>
  6.  <?php foreach($news->comments as $commet): ?>
  7.  <li><?php echo $comment->content ?></li>
  8.  <?php endforeach ?>
  9. </ul>
Pewnie kod PHP błędny, bo z Doctrine miałem kontakt dopiero kilka godzin, a pisane z palca winksmiley.jpg
Oczywiście wyświetlanie pojedyńczego komentarza może być w partialu
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.