我正在查看维护模式的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 }}
访问显而易见的选择但没有成功,返回未定义的变量。
我的问题是:如何访问它?
答案 0 :(得分:29)
实际上你并不需要那个" json_decode"东西,因为所有"错误"视图(包括503.blade.php
)包含$exception
变量。
因此,您可以在视图中使用{{ $exception->getMessage() }}
,然后您将获得传递给artisan down --message
命令的确切值。
答案 1 :(得分:12)
默认情况下503.blade.php视图不会使用此消息。
此消息在名为storage/framework/down
generated by php artisan down
命令的JSON格式文件中可用。
您可以执行以下操作直接访问视图中的消息:
{{ json_decode(file_get_contents(storage_path('framework/down')), true)['message'] }}
更简洁的方法是使用$exception
变量,并在this answer中建议的{{ $exception->getMessage() }}
中加入CheckForMaintanceMode
。
在幕后,MaintanceModeException
中间件会读取message and other data from the file并使用此数据抛出std::cout << std::setw(15) << std::left << "Bill";
std::cout << std::setw(15) << std::right << std::fixed << std::setprecision(2) << bill << std::endl;
std::cout << std::setw(15) << std::left << "Tax @ 10.5%";
std::cout << std::setw(15) << std::right << std::fixed << std::setprecision(2) << tax << std::endl;
。
答案 2 :(得分:3)
如果您需要维护页面上的详细信息(而不仅仅是消息),您还可以使用IllegalStateException
(Int),$exception->retryAfter
(碳)和$e->willBeAvailableAt
(碳)。
当然,您需要在artisan命令中设置 - 重试参数。