Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [LR] Routing do widoków, 2 pytania
markonix
post
Post #1





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


  1. Route::get('page/{id}', function ($name) {
  2. return view('pages.static.'. $name);
  3. });

Mam taki prosty route, który pozwoli na tworzenie takich statycznych podstron bez mojej ingerencji.
Wystarczy stworzyć widok w folderze i wsio.

Mam jednak zagwozdki:
1) Jak wyświetlić 404 gdy widoku nie ma, przy obecnym rozwiązaniu wyrzuca błąd o braku widoku (oczywiste)?
2) Chciałbym pominąć te "page" czyli mieć example.com/faq zamiast example.com/pages/faq? Jak zrobić taki główny route, który zbierze wszystkie requesty ale zostawi te należące do aplikacji?

edit:
W sumie z tym punktem 2 przyszedł mi najoczywistszy pomysł.. Po prostu dać:
  1. Route::get('{id}', function ($name) {
  2. return view('pages.static.'. $name);
  3. });

na samym końcu pliku.

Czy to "ładne" i bezpieczne rozwiązanie?

Ten post edytował markonix 13.01.2016, 00:18:08
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
markonix
post
Post #2





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Dumpowałem i wskazywało na InvalidArgumentException dlatego zgłupiałem.
Slash oczywiście zadziałał, oczywiście bo nawet PHPSTORM to podpowiadał.

Wracając do tematu właściwego mam coś takiego:
  1. public function report(Exception $e)
  2. {
  3. if ($e instanceof \InvalidArgumentException && strstr($e->getMessage(), 'pages.static') !== false)
  4. {
  5. abort(404);
  6. }
  7. return parent::report($e);
  8. }

Ten drugi warunek jest po to aby zachować funkcjonalność wyjątków gdy faktycznie brakuje widoku w przypadku normalnych kontrolerów (np. zrobimy literówkę z metodzie view()).
Brzydko ale działa jak powinno.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 12:26