Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inny][Lumen] Multum wyjątków.
Forum PHP.pl > Forum > PHP > Frameworki
Fred1485
Może tu ktoś pracuje/pracował na lumenie. Instalacja przebiegła prawidłowo, jak radzą twórcy ( http://lumen.laravel.com/docs/installation ) odkomentowałem instrukcję:

Note: In order for your configuration values to be loaded, you will need to uncomment the Dotenv::load() method call in your bootstrap/app.php file.

No niby wszystko działa, jak w pasku wpiszę stronę zdefiniowaną w routingu to śmiga wszystko jak najbardziej, lecz jeśli adres nie istnieje to pięknie wyświetla:

Sorry, the page you are looking for could not be found.

Lecz pod spodem wyświetla multum wyjątków:

http://abload.de/img/aaa6ioba.png

Czy tak powinno być? Nie chcę złego startu zaliczyć i potem szukać błędów.
memory
Tak to jest standardowy error handler
Fred1485
A pozwole sobie zapytać czy pracowałeś na lumenie czy piszesz z ogólnego doświadczenia? Mam jeszcze jedno pytanie dla osoby zaznajomionej z tym frameworkiem.
Pyton_000
Jeśli w .env masz APP_DEBUG true to dostajesz stacktrace, jeśli ustawsz na false lub wcale to dostajesz tylko czysty komunikat.

Generalnie wszystko jest w porządku.
Fred1485
Już doczytałem w dalszej części dokumentacji, korzystając z okazji borykam się teraz z drugim problemem, co prawda jeszcze nie powiedziałem ostatniego słowa, ale pomysły mi się wyczerpują, mianowicie dodaję route:

  1. $app->get('page/{id}', ['middleware' => 'page', function($id) {
  2. return view('PageView', ['id' => $id]);
  3. }]);


Taki kod działa świetnie, ale da radę do middleware przypisać bezpośrednio $id z adresu? W middleware sprawdzam czy id jest liczbą, jeśli tak to przepuszaczam jeśli nie to wywalam błąd na ekran. Owszem w dokumentacji znalazłem że można parametr przepuścić tak:

  1. $app->get('page/{id}', ['middleware' => 'page:1', function($id) {
  2. return view('PageView', ['id' => $id]);
  3. }]);


I działa, ale jest to na sztywno przypisane, co oczywiście w ogóle mi nie pomaga. A może źle wykorzystuję do tego celu middleware?
Pyton_000
  1. $app->get('page/{id:\d+}', [function($id) {
  2. return view('PageView', ['id' => $id]);
  3. }]);
Fred1485
O kurczę to trzeba było na poziomie parameteru zrobić, takie proste i logiczne biggrin.gif Wielkie dzięki!
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.