我有一个API,该API使用Illuminate\Support\Facades\Auth
类向每个服务各自的存储库中的几个不同服务发出HTTP请求。这是我用于此类请求的结构,其中httpClient
引用了GuzzleHttp
的实现:
$items = $this->httpClient->get(
env('INVENTORY_URI').'item?'.http_build_query($query),
Auth::user()->get('token')
);
所有API的请求都是以这种方式构造的,并且已经过测试工作。但是,在某些存储库上,引用Auth类将返回此错误:
在数组上调用成员函数parameter()
我不知道为什么只有其中一些对Auth的调用会引发此错误,因为请求实际上彼此相同。
更新:我设法将异常进一步追溯到AuthServiceProvider
,但是该异常的真正原因仍然困扰着我。我的boot()
函数的编码如下:
public function boot()
{
$this->app['auth']->viaRequest('api', function ($request) {
if ($request->auth) // Exception thrown at this point
{
return new Collection(json_decode($request->auth, true));
}
});
}
更具体地讲,为了重申前面提到的事实,该异常仅发生于44个请求中的4个。
更新2:我使用dd()
从结果的AuthServiceProvider
和took a screenshot中转储请求对象。在功能正常的HTTP请求中转储时,左边是Request对象,而在HTTP请求中转储会抛出错误时,右边是Request对象。