升级到cakephp3.6后无法修改标题信息

时间:2018-09-21 13:38:51

标签: cakephp

在将cakephp3.2升级到3.6之后,我在一个实时服务器上遇到了错误,而我并没有在本地服务器上出错。 我不明白该错误的解决方法,因为代码是指我不接触的设置代码。文档还没有澄清这些问题

 // this is code that i dont touch so what am i doing to fix this?
   Cannot modify header information - headers already sent by (output started at /home/andrewto/public_html/crmcta/vendor/cakephp/cakephp/src/Error/Debugger.php:853) 


//i dont understand how to fix this depricated error as just using withType didnt work
Deprecated (16384): Response::type() is deprecated. Use getType() or withType() instead. - /home/andrewto/public_html/crmcta/src/Controller/AppController.php, line: 137
  public function beforeRender(Event $event)
    {
        if (!array_key_exists('_serialize', $this->viewVars) &&
            in_array($this->response->type(), ['application/json', 'application/xml'])
        ) {
            $this->set('_serialize', true);
        }
    }

http://andrewt.com.au/crmcta/users/login

1 个答案:

答案 0 :(得分:2)

您需要做的第一件事是禁用实时服务器上的弃用错误。您可以通过在config / app.php中将Error.errorLevel设置为E_ALL & ~E_USER_DEPRECATED来实现。

然后,您可以使用新方法替换不推荐使用的方法-在您的示例中,您应该使用$this->response->getType()而不是不推荐使用的$this->response->type()