Laravel:使用Auth有时会返回错误:调用数组中的成员函数parameter()

时间:2018-10-08 17:25:37

标签: php laravel authentication request lumen

我有一个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()从结果的AuthServiceProvidertook a screenshot中转储请求对象。在功能正常的HTTP请求中转储时,左边是Request对象,而在HTTP请求中转储会抛出错误时,右边是Request对象。

0 个答案:

没有答案