底层错误:ob_end_flush(): failed to send buffer of zlib output co



每次我有一个错误,例如:试图访问一个非对象的属性,我得到这个消息:

ob_end_flush(): failed to send buffer of zlib output compression (0)

open: /home/admin/domains/mysite/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Response.php

$previous = null;
$obStatus = ob_get_status(1);
while (($level = ob_get_level()) > 0 && $level !== $previous) {
    $previous = $level;
    if ($obStatus[$level - 1]) {
        if (version_compare(PHP_VERSION, '5.4', '>=')) {
            if (isset($obStatus[$level - 1]['flags']) && ($obStatus[$level - 1]['flags'] & PHP_OUTPUT_HANDLER_REMOVABLE)) {
                ob_end_flush();
            }
        }
    }
}

我尝试设置在php.ini:

zlib.output_compression = Off
zlib.output_handler =

但它没有帮助。

我使用Laravel 4.1

有人知道如何解决这个问题吗?

如果你在视图中使用@ section,那么在section下面使用@stop来停止section区域

不确定这是否有帮助,但我遇到了这个问题,并认为我会分享为我修复它的方法,具有相同的错误。这是由于试图设置通过节调用传入的空变量而引起的。要修复它,只需使用isset检查。

@isset($var)
  @section('header', $var)
@endisset

不确定这是否对任何人有帮助,我在创建pdf时使用laravel收到此错误。解决方案是将控制器中返回的2个数据变量添加到view-pdf.blade.php中。

检查您的刀片文件中是否缺少@end语句,如@endsection

此错误发生在生产环境中,如果您使用的是Laravel的任何版本,则很容易修复。我通过编辑env文件解决了这个问题,确保你设置Production而不是local

APP_ENV=Production

最新更新