don*_*ona 0 php error-handling post laravel
要重现错误,只需上传一个文件(S)在Laravel任何邮路超出post_max_size
你的php.ini
配置.
我的目标是简单地捕获错误,以便我可以通知用户他上传的文件太大.说:
public function postUploadAvatar(Request $request)
try {
// Do something with $request->get('avatar')
// Maybe validate file, store, whatever.
} catch (PostTooLargeException $e) {
return 'File too large!';
}
}
Run Code Online (Sandbox Code Playgroud)
以上代码在标准Laravel 5(PSR-7)中.它的问题是一旦注入的请求发生错误,该函数就无法执行.从而无法在功能内捕获它.那么如何抓住呢?
Laravel使用它的ValidatePostSize
中间件来检查post_max_size
的要求,然后抛出PostTooLargeException
,如果CONTENT_LENGTH
请求的太大.这意味着异常如果在它到达你的控制器之前抛出的方式.
你可以做的是render()
在你的App\Exceptions\Handler
例子中使用这个方法
public function render($request, Exception $exception)
{
if ($exception instanceof PostTooLargeException) {
return response('File too large!', 422);
}
return parent::render($request, $exception);
}
Run Code Online (Sandbox Code Playgroud)
请注意,您必须从此方法返回响应,您不能只从控制器方法返回一个字符串.
上面的回答是复制return 'File too large!';
你在问题中的示例,你可以明显地将其改为其他东西.
希望这可以帮助!
归档时间: |
|
查看次数: |
5198 次 |
最近记录: |