如果签名无效,我必须中止某些操作,并且我还想向显示它的视图发送一条消息。我记得一年前在我的上一个项目中能够做类似的事情。但是现在当我尝试这个
if (!$request->hasValidSignature()) {
abort(401, 'Signature is not valid.');
}
我收到一条错误消息,提示$ message不可用
这是中止功能的定义,因此很明显,它将消息作为输入。
public function abort($code, $message = '', array $headers = [])
{
if ($code == 404) {
throw new NotFoundHttpException($message);
}
throw new HttpException($code, $message, null, $headers);
}
我想知道为什么会出现此错误:
ErrorException (E_ERROR)
Undefined variable: message (View:
C:\laragon\www\laraone\resources\views\errors\401.blade.php)
这是我使用该变量的401.blade.php的一部分...
<div class="content">
<div class="title">401</div>Unauthorized action, {{ $message }}
</div>
答案 0 :(得分:3)
使用$exception->getMessage()
。来自docs:
由
HttpException
函数引发的abort
实例将作为$exception
变量传递到视图:<h2>{{ $exception->getMessage() }}</h2>
所以在您的情况下:
<div class="content">
<div class="title">401</div>Unauthorized action, {{ $exception->getMessage() }}
</div>