2016-09-10 9 views
5

jestem sprawdzeniu docs laravel dla trybu Maintenance:laravel wyświetlić komunikat niestandardowy w trybie konserwacji

https://laravel.com/docs/5.3/configuration#maintenance-mode

Po wykonaniu polecenia php artisan down będzie umieścić aplikację w trybie konserwacji, i zwraca Widok 503.blade.php.

działa dobrze, ale istnieje możliwość, że nie może naprawdę działa .. kiedy zrobić:

php artisan down --message='Upgrading Database' --retry=60 

Chcę, aby wyświetlić wiadomość w widoku, próbowałem dostępu oczywistym wyborem z {{ $message }} bez powodzenia zwraca niezdefiniowaną zmienną.

Moje pytanie brzmi: jak uzyskać do niego dostęp?

Odpowiedz

5

Domyślnie widok 503.blade.php nie używa tej wiadomości. Ta wiadomość jest dostępna w pliku w formacie JSON o nazwie storage/framework/downgenerated by php artisan down.

Można zrobić coś takiego, aby uzyskać dostęp do wiadomości w widoku:

{{ json_decode(file_get_contents(storage_path('framework/down')), true)['message'] }} 
+0

Zobacz https://stackoverflow.com/a/41654147/107282 – jezmck

14

Właściwie nie trzeba, że ​​„json_decode” rzeczy, jak wszystkie widoki „błąd” (w tym 503.blade.php) mają $exception zmienna.

Możesz więc użyć widoku {{ $exception->getMessage() }}, a otrzymasz dokładną wartość, którą przekazałeś do polecenia artisan down --message.

+1

Można również użyć {{$ exception-> retryAfter}}, aby wyświetlić godzinę. – vivanov

+0

powinna to być zaakceptowana wiadomość – hadi

1

Jeśli chcesz uzyskać szczegółowe informacje (nie tylko wiadomość) na stronie konserwacji, możesz również użyć $exception->retryAfter (Int), $e->willBeAvailableAt (Węgiel) i $e->wentDownAt (Węgiel). Oczywiście musisz ustawić parametr --retry w poleceniu rzemieślniczym.

Powiązane problemy