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
正如 @ndm 在 OP 评论中所说,链接文档中的最后一个示例应该可以解决您的问题。您使用的是 3.4 之前的版本,因此您必须使用:
// Prior to 3.4.0
$key = $this->request->header('Authorization');
Run Code Online (Sandbox Code Playgroud)