🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.php
7 messages
7 total messages Started by Marek S Sun, 17 Mar 2019 18:31
Laravel - wiele formularzy pod jednym URL
#232284
Author: Marek S
Date: Sun, 17 Mar 2019 18:31
25 lines
2026 bytes
Witam,

Uczę się Laravela lecz ugrzązłem na pewnym etapie. Potrafię wyświetlić 
wiele formularzy na 1 stronie ale nie potrafię ich obsłużyć bez zmiany 
URL i bez stosowania Ajax'a.

Sytuacja jest następująca: jest rozbudowany serwis WWW. Posiada on 
formularz logowania na każdej stronie. Na stronie głównej dochodzi 
formularz logowania się do newslettera. Gdzieś jeszcze dochodzi 
formularz wyszukiwania produktów. Będą zdarzać się jeszcze inne 
kombinacje różnych formularzy. Ciężko przewidzieć jakie. Z pewnością na 
jednej stronie będę musiał zbudować dwie wyszukiwarki do dwóch różnych 
rzeczy. Nie jest dopuszczalne aby wybranie kryteriów wyszukiwania w 
jednej czy drugiej spowodowało wyświetlenie innej strony WWW niż obecna. 
Nie jest też dopuszczalne by zmiana kryteriów wyszukiwania w jednej 
wyszukiwarce powodowała ponowienie wyszukiwania w drugiej.

Do niedawna stosowałem własny CMS i nie było z tym problemów. Mogłem 
umieszczać na stronie dowolną liczbę przeróżnych formularzy i każdy z 
nich działa niezależnie bez zmiany URL. Nie mam pojęcia jak tego dokonać 
w Laravelu. Pls help.

-- 
Pozdrawiam,
Marek
Re: Laravel - wiele formularzy pod jednym URL
#232285
Author: Borys Pogoreło
Date: Mon, 18 Mar 2019 14:18
14 lines
1290 bytes
Dnia Sun, 17 Mar 2019 19:31:38 +0100, Marek S napisał(a):

> Uczę się Laravela lecz ugrzązłem na pewnym etapie. Potrafię wyświetlić 
> wiele formularzy na 1 stronie ale nie potrafię ich obsłużyć bez zmiany 
> URL i bez stosowania Ajax'a.

Jeśli chodzi tylko o to, by po wysłaniu tych formularzy wrócić na
poprzednią stronę, to zrób w każdym z nim powrót przez

return redirect()->back()->cotamjeszczepotrzebujesz()

-- 
Borys Pogoreło
borys(#)leszno,edu,pl
Re: Laravel - wiele formularzy pod jednym URL
#232286
Author: Marek S
Date: Mon, 18 Mar 2019 20:24
9 lines
1125 bytes
W dniu 2019-03-18 o 15:18, Borys Pogoreło pisze:

> return redirect()->back()->cotamjeszczepotrzebujesz()

Też tak sobie pomyślałem. Czyli http 3xx ... Dzięki :-)

-- 
Pozdrawiam,
Marek
Re: Laravel - wiele formularzy pod jednym URL
#232287
Author: Marek S
Date: Fri, 22 Mar 2019 22:35
19 lines
1888 bytes
W dniu 2019-03-18 o 15:18, Borys Pogoreło pisze:
> Jeśli chodzi tylko o to, by po wysłaniu tych formularzy wrócić na
> poprzednią stronę, to zrób w każdym z nim powrót przez
> 
> return redirect()->back()->cotamjeszczepotrzebujesz()

Ugrzązłem. Dwa formularze mają inny "action". Są one póki co osadzone 
bezpośrednio jako HTML-owe składniki home.blade.php. Inne kontrolery je 
zatem odsługują. Załóżmy, że submitujemy formularz #2. Następuje więc 
przekierowanie pod URL skojarzony z właściwym formularzowi kontrolerem. 
Kontroler validuje pola i stwierdza, że coś jest nie tak w polu A i B. 
Robimy redirect'a 3xx do strony zawierającej oba formularze. Chciałbym 
podświetlić wadliwe pola w odpowiednim formularzu i wyświetlić w nim 
komunikat o błędzie. Jak mogę uzyskać informację od obu kontrolerów 
odnośnie poprawności wypełnienia pól w celu podświetlenia błędów?

-- 
Pozdrawiam,
Marek
Re: Laravel - wiele formularzy pod jednym URL
#232288
Author: Borys Pogoreło
Date: Mon, 25 Mar 2019 16:35
14 lines
1475 bytes
Dnia Fri, 22 Mar 2019 23:35:27 +0100, Marek S napisał(a):

> Robimy redirect'a 3xx do strony zawierającej oba formularze. Chciałbym 
> podświetlić wadliwe pola w odpowiednim formularzu i wyświetlić w nim 
> komunikat o błędzie. Jak mogę uzyskać informację od obu kontrolerów 
> odnośnie poprawności wypełnienia pól w celu podświetlenia błędów?

Jeśli masz dwa lub więcej formularzy, to musisz je jakoś rozdzielić,
wprowadzając coś na kształt przestrzeni nazw. Możesz użyć prefiksów albo
tablic w nazwach pól.

-- 
Borys Pogoreło
borys(#)leszno,edu,pl
Re: Laravel - wiele formularzy pod jednym URL
#232289
Author: Marek S
Date: Mon, 25 Mar 2019 21:32
18 lines
1811 bytes
W dniu 2019-03-25 o 17:35, Borys Pogoreło pisze:

> Jeśli masz dwa lub więcej formularzy, to musisz je jakoś rozdzielić,
> wprowadzając coś na kształt przestrzeni nazw. Możesz użyć prefiksów albo
> tablic w nazwach pól.

Znalazłem rozwiązanie! Uff... Jest nim właściwość errorBag klasy Form. 
Dzięki temu można wiele formularzy mieć na 1 stronie, obsługiwać ich 
submitowanie w różnych kontrolerach i wracać z wynikami do strony, która 
nie ma nic wspólnego z tymi kontrolerami. Zarówno stany pól jaki i błędy 
są rozdzielone. Nie ma potrzeby zdbania o niepowtarzalność nazw pól.

To takie obejście limitów modelu MVC...  Przy MVP tego typu problemy w 
ogóle nie istniały. Ciekawe skąd taka popularność frameworków MVC?

-- 
Pozdrawiam,
Marek
Re: Laravel - wiele formularzy pod jednym URL
#232290
Author: Borys Pogoreło
Date: Tue, 26 Mar 2019 16:29
20 lines
1859 bytes
Dnia Mon, 25 Mar 2019 22:32:18 +0100, Marek S napisał(a):

> Znalazłem rozwiązanie! Uff... Jest nim właściwość errorBag klasy Form. 
> Dzięki temu można wiele formularzy mieć na 1 stronie, obsługiwać ich 
> submitowanie w różnych kontrolerach i wracać z wynikami do strony, która 
> nie ma nic wspólnego z tymi kontrolerami. Zarówno stany pól jaki i błędy 
> są rozdzielone. Nie ma potrzeby zdbania o niepowtarzalność nazw pól.

To nie wystarczy, jeśli chcesz zadbać o dobre UI i podświetlać pola, które
mają błędną zawartość. W tym celu musisz mieć możliwość ich jednoznacznej
identyfikacji.

> To takie obejście limitów modelu MVC...  Przy MVP tego typu problemy w 
> ogóle nie istniały. Ciekawe skąd taka popularność frameworków MVC?

Bo MVP służy przede wszystkim do opisu interfejsów.

-- 
Borys Pogoreło
borys(#)leszno,edu,pl
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads