cakephp3-无法获取控制器内的授权头

Lon*_*olf 5 php cakephp cakephp-3.0

我正在使用CakePHP 3框架开发API.现在我正在从POSTMAN客户端发送GET请求.用户将在标头中传递API密钥. 在此输入图像描述

我想在我的控制器功能中获取此标头.

这就是我的控制器的样子

namespace Api\Controller;
use Cake\Auth\DefaultPasswordHasher;
use Api\Controller\AppController;
use Cake\Cache\Cache;
use Cake\Http\ServerRequest;

class ApiController extends AppController
{
    public function initialize()
    {
        parent::initialize();
        $this->loadComponent('RequestHandler');
    }

    public function myinfo()
    {
        if($this->request->is('get')) { 
            $key = $this->request->getHeaderLine('Authorization');
            $this->set('key', $key);
        }
        $this->set('_serialize', ['key']);          
    } 
}
Run Code Online (Sandbox Code Playgroud)

我得到的错误是: HeaderLine is not a function

我还尝试了一些选择:

$acceptHeader = $this->request->getHeader('Authorization');
Run Code Online (Sandbox Code Playgroud)

但这也引发了类似的错误.标题不是一个功能.

参考:链接

CakePHP版本:3.3.5

chr*_*ick 3

正如 @ndm 在 OP 评论中所说,链接文档中的最后一个示例应该可以解决您的问题。您使用的是 3.4 之前的版本,因此您必须使用:

// Prior to 3.4.0
$key = $this->request->header('Authorization');
Run Code Online (Sandbox Code Playgroud)