在将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);
}
}
答案 0 :(得分:2)
您需要做的第一件事是禁用实时服务器上的弃用错误。您可以通过在config / app.php中将Error.errorLevel
设置为E_ALL & ~E_USER_DEPRECATED
来实现。
然后,您可以使用新方法替换不推荐使用的方法-在您的示例中,您应该使用$this->response->getType()
而不是不推荐使用的$this->response->type()
。