Laravel 在维护模式下显示自定义消息
Laravel display a custom message in Maintenance Mode
我正在查看 Laravel 维护模式文档:
https://laravel.com/docs/5.3/configuration#maintenance-mode
当您执行命令 php artisan down
时,它会将应用程序置于维护模式,并且 return 503.blade.php 视图。
效果很好,但有一个选项我真的做不到。当我做的时候:
php artisan down --message='Upgrading Database' --retry=60
我想在视图中显示消息,我尝试使用 {{ $message }}
访问明显的选择但没有成功,returns 未定义的变量。
我的问题是:如何访问它?
默认情况下 503.blade.php 视图不使用此消息。
此消息在名为 storage/framework/down
generated by php artisan down
命令的 JSON 格式文件中可用。
您可以这样做来直接访问您视图中的消息:
{{ json_decode(file_get_contents(storage_path('framework/down')), true)['message'] }}
更简洁的方法是使用 $exception
变量并在您的视图中包含 {{ $exception->getMessage() }}
,就像 中建议的那样。
在幕后,CheckForMaintanceMode
中间件读取 message and other data from the file 并使用此数据抛出 MaintanceModeException
。
编辑: 在 Laravel 8 之后,创建 storage/framework/down
命令的负载发生了变化,但没有 include the exception message。您应该在 Laravel 8+.
上使用 {{ $exception->getMessage() }}
实际上你不需要 "json_decode" 东西,因为所有 "error" 视图(包括 503.blade.php
)都有 $exception
变量。
因此您可以在视图中使用 {{ $exception->getMessage() }}
,您将获得传递给 artisan down --message
命令的准确值。
如果您想在维护页面上获得详细信息(不仅仅是消息),您还可以使用 $exception->retryAfter
(Int)、$e->willBeAvailableAt
(Carbon) 和 $e->wentDownAt
(Carbon) .
当然你需要在artisan命令中设置--retry参数。
我正在查看 Laravel 维护模式文档:
https://laravel.com/docs/5.3/configuration#maintenance-mode
当您执行命令 php artisan down
时,它会将应用程序置于维护模式,并且 return 503.blade.php 视图。
效果很好,但有一个选项我真的做不到。当我做的时候:
php artisan down --message='Upgrading Database' --retry=60
我想在视图中显示消息,我尝试使用 {{ $message }}
访问明显的选择但没有成功,returns 未定义的变量。
我的问题是:如何访问它?
默认情况下 503.blade.php 视图不使用此消息。
此消息在名为 storage/framework/down
generated by php artisan down
命令的 JSON 格式文件中可用。
您可以这样做来直接访问您视图中的消息:
{{ json_decode(file_get_contents(storage_path('framework/down')), true)['message'] }}
更简洁的方法是使用 $exception
变量并在您的视图中包含 {{ $exception->getMessage() }}
,就像
在幕后,CheckForMaintanceMode
中间件读取 message and other data from the file 并使用此数据抛出 MaintanceModeException
。
编辑: 在 Laravel 8 之后,创建 storage/framework/down
命令的负载发生了变化,但没有 include the exception message。您应该在 Laravel 8+.
{{ $exception->getMessage() }}
实际上你不需要 "json_decode" 东西,因为所有 "error" 视图(包括 503.blade.php
)都有 $exception
变量。
因此您可以在视图中使用 {{ $exception->getMessage() }}
,您将获得传递给 artisan down --message
命令的准确值。
如果您想在维护页面上获得详细信息(不仅仅是消息),您还可以使用 $exception->retryAfter
(Int)、$e->willBeAvailableAt
(Carbon) 和 $e->wentDownAt
(Carbon) .
当然你需要在artisan命令中设置--retry参数。