Wyobraź sobie, że masz metodę w kontrolerze, na przykład zapisanie nowej firmy. Wyobraźmy sobie również, że możemy stworzyć nową firmę z różnych stron na naszej stronie. Na przykład mogę utworzyć firmę z 2-3 stron.Przekierowanie do różnych stron w oparciu o poprzednią stronę w Laravel
W zależności od miejsca, w którym utworzyłem firmę, muszę mieć różne przekierowania. Czasami trzeba przekierować z powrotem, a czasem na inne trasy.
Coś jak:
if ($previousRoute === 'companies.index') {
return redirect()->back();
} else {
return redirect()->route('someroute');
}
Chyba nie można uzyskać nazwę trasy wher użytkownik pochodzi. Jeśli sprawdzę adres URL strony odsyłającej, to w przypadku, gdy zmienię adres URL trasy, wszystko zostanie zerwane, więc zamiast tego opieram się na nazwach tras. Dodatkowo, rozwiązanie mające wiele "if-s" lub "switch" jest dość dziwne, zanieczyszcza kod.
Potrzebna jest również obsługa symboli wieloznacznych. Jakiś rodzaj mapy trasy z przekierowaniami lub czymś w tym stylu.
Każda rada, jak to wdrożyć?
Ponieważ domyślam się, że jesteś POSTINGem do działania kontrolera, dlaczego nie możesz po prostu przekazać wartości, która wskazuje, czy powinieneś zostać przekierowany z powrotem? I możesz po prostu uwzględnić tę wartość w wymaganych formularzach (ponieważ powiedziałeś, że masz 2-3 strony, które to robią, zakładam, że możesz dopasować formularze do każdego, tak jak ci odpowiada). Podejście, którego szukasz, nie ma wiarygodnych rozwiązań i jest zbyt skomplikowane. – Bogdan
Niesamowite rozwiązanie. Jedyną rzeczą jest to, że mam teraz okno modalne z formularzem. Po kliknięciu różnych przycisków pokazuję modalny iw zależności od tego, gdzie kliknąłem, muszę przekierować użytkownika na różne strony. Zrobiłem 3 pliki: form.blade.php, modal1.blade.php i modal2.blade.php. Załączam formularz do tych modałów i przekazuję je do parametru redirect_to, a wewnątrz formularza umieszczam ukryte dane wejściowe z tym parametrem – Victor