[PHP][Laravel]obsługa błędów -> strona 404 |
[PHP][Laravel]obsługa błędów -> strona 404 |
24.06.2020, 18:22:37
Post
#1
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 5.12.2019 Ostrzeżenie: (0%) |
Mam pytanie odnośnie przekierowywania do konkretnego blade jeśli wykryję problem z bazy danych, wszystko jest fajnie do kiedy chce zrobić nieprzekierowanie ponieważ wyskakuje błąd
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'shop.products' doesn't exist (SQL: select count(*) as aggregate from `products` where `activ` = 1)
rozumiem błąd który wyskakuje ale nie wiem jak mam przekierowywać do konkretnego blade np. error gdzie wyświetli się konkretny wygląd Ten post edytował Sklep102 24.06.2020, 18:23:05 |
|
|
24.06.2020, 18:57:34
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
-------------------- |
|
|
26.06.2020, 01:19:23
Post
#3
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 5.12.2019 Ostrzeżenie: (0%) |
Może za bardzo zamieszałem chodzi mi oto żeby sprawdzić czy istnieje baza danych oraz tabele jeśli nie to przenosi mnie do przycisku. Wpadłem więc na pomysł żeby zrobić funkcję i zaimportować ją do każdej kwerendy ale nie działa to prawidłowo może ktoś ma łatwe rozwiązanie Ten post edytował Sklep102 26.06.2020, 01:20:09 |
|
|
26.06.2020, 05:46:46
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Co ty w ogóle tworzysz? Zastanów się co to oznacza od strony programistycznej. Do bazy danych nawiązujesz połączenie określonymi poświadczeniami (czyli już na poziomie nawiązania połączenia musisz znać dane jak baza, login, pass) a chyba nie robisz takiej głupoty że aplikacja działa jako root? Jeśli to mysql to dane możesz wyciągnąć z INFORMATION_SCHEMA albo z polecenia SHOW DATABASES.
-------------------- |
|
|
26.06.2020, 12:52:31
Post
#5
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 5.12.2019 Ostrzeżenie: (0%) |
Aplikacja działa na root ponieważ strona nie będzie dostępna publicznie służy tylko do nauki. Próbuje ogarnąć w jaki sposób sprawdzić czy baza danych oraz tabele istnieją zanim wyświetli się strona jeśli nie (przenosi mnie do przycisku który tworzy bazę danych oraz tablę. to już mam zrobione)
|
|
|
26.06.2020, 12:56:25
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Za tworzenie odpowiednich tabel są odpowiedzialne migracje. Reszta jak napisałem.
-------------------- |
|
|
26.06.2020, 13:33:04
Post
#7
|
|
Grupa: Zarejestrowani Postów: 44 Pomógł: 5 Dołączył: 20.05.2019 Ostrzeżenie: (0%) |
Aplikacja działa na root ponieważ strona nie będzie dostępna publicznie służy tylko do nauki. Próbuje ogarnąć w jaki sposób sprawdzić czy baza danych oraz tabele istnieją zanim wyświetli się strona jeśli nie (przenosi mnie do przycisku który tworzy bazę danych oraz tablę. to już mam zrobione) Twoja koncepcja nauki nie jest dobra bo nigdy w rzeczywistości nie spotkasz się z funkcjonalnością tworzenia tabeli pod przyciskiem, dlatego, że model bazy wymaga zawsze implementacji w kodzie. Tak jak było wyżej napisane, od tego są migracje, a sprawdzanie czy tabela już istnieje możesz zrobić w nich prostym warunkiem. Zresztą Laravel wyrzuci Ci błędy już na samym początku, jak baza nie będzie podpięta w envie prawidłowo i skonfigurowana w cfg. Ten post edytował netir 26.06.2020, 13:35:22 |
|
|
26.06.2020, 15:37:15
Post
#8
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 5.12.2019 Ostrzeżenie: (0%) |
Twoja koncepcja nauki nie jest dobra bo nigdy w rzeczywistości nie spotkasz się z funkcjonalnością tworzenia tabeli pod przyciskiem, dlatego, że model bazy wymaga zawsze implementacji w kodzie. Tak jak było wyżej napisane, od tego są migracje, a sprawdzanie czy tabela już istnieje możesz zrobić w nich prostym warunkiem. Zresztą Laravel wyrzuci Ci błędy już na samym początku, jak baza nie będzie podpięta w envie prawidłowo i skonfigurowana w cfg. Chodziło mi o to że laravel wyrzuca błąd np. brak bazy danych i chciałem wyświetlić konkretną stronę zamiast błędu i udało mi się to tylko mam pytanie odnośnie implementacji. Mianowicie
i Funkcja index zwraca tylko funkcję db_check bez wykonania dalszego kodu w jaki sposób zaimportować fukcję db_check tak aby działała reszta kodu? oczywiście można zrobić ale wydaje mi się że jest jakieś prostsze rozwiązanie a co do implementacji w kodzie rozumiem to mam stworzone migrację i jeśli nie będzie bazy danych to przycisk ją stworzy (nazwa) z pliku .env i wykona migrację to wszystko. |
|
|
26.06.2020, 15:52:05
Post
#9
|
|
Grupa: Zarejestrowani Postów: 44 Pomógł: 5 Dołączył: 20.05.2019 Ostrzeżenie: (0%) |
Chodziło mi o to że laravel wyrzuca błąd np. brak bazy danych i chciałem wyświetlić konkretną stronę zamiast błędu i udało mi się to tylko mam pytanie odnośnie implementacji. Mianowicie Wyrzuca Ci błąd bo masz w .env włączony DEBUG, jak zmienisz wersję z lokalnej na produkcyjną i wyłączysz DEBUG to ewentualne błędy będą zapisywane w logach i wyświetli się tylko strona z widokiem kodu błędu (możesz ją sobie ostylować, jak tam chcesz). Mam nadzieje, że nie chodzi Ci po głowie wyświetlanie użytkownikowi komunikatu o braku tabeli bo narażasz się na ataki podając takie informacje publicznie. Ogólnie dobrze, że się uczysz, ale nie bądź uparty i nie brnij w tą chorą logikę dalej. To rozwiązuje cały twój problem: https://laravel.com/docs/7.x/errors#custom-http-error-pages Ten post edytował netir 26.06.2020, 15:53:21 |
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 02:11 |