2016-09-10 4 views
5

я проверяю Laravel документацию для режима обслуживания:Laravel отображение пользовательского сообщения в режиме обслуживания

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

При выполнении команды php artisan down, это поставит приложение в режиме технического обслуживания, и вернуть 503.blade.php.

работает хорошо, но есть вариант, что я не могу сделать работу .. когда я делаю:

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

Я хочу, чтобы отобразить сообщение в окне, я попытался получить доступ к очевидному выбору с {{ $message }} без успеха возвращает неопределенную переменную.

Мой вопрос: как к нему обращаться?

ответ

5

По умолчанию 503.blade.php вид не использует это сообщение.

Это сообщение доступно в формате JSON с именем storage/framework/downgenerated by php artisan down.

Вы могли бы сделать что-то вроде этого, чтобы получить доступ сообщения на ваш взгляд:

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

См. Https://stackoverflow.com/a/41654147/107282 – jezmck

14

На самом деле вам не нужно, что «json_decode» материал, как и все виды «ошибок» (в том числе 503.blade.php) имеют $exception переменная.

Таким образом, вы можете использовать только {{ $exception->getMessage() }}, и получите точное представление о команде artisan down --message.

+1

Также можно использовать {{$ exception-> retryAfter}}, чтобы показать время. – vivanov

+0

Это должно быть принятое сообщение – hadi

1

Если вы хотите получить подробную информацию (а не только сообщение) на странице обслуживания, вы также можете использовать $exception->retryAfter (Int), $e->willBeAvailableAt (Carbon) и $e->wentDownAt (Carbon). Конечно, вам нужно установить --retry параметр в команде ремесленника.

Смежные вопросы