如何修复guzzlehttp / guzzle上的422无法处理的实体错误

时间:2019-02-23 16:14:09

标签: php laravel exception-handling

向大家致意。 我将BadChoice / handesk用于自己的票务系统。 我认为这是一个很好的开源项目 使用GuzzleHttp\Client调用api票证时,出现错误

$username = $user->username;
        try {
            $tickets = [];
            $client = new Client(["headers" => ["token" => config('services.handesk.token')]]);
            $response = $client->get($this->url . "/tickets?requester={$username}&status=open");                

            if (200 == $response->getStatusCode()) {
                $tickets = json_decode($response->getBody(), true)['data'];
            }
            return response()->json(['message' => 'fecthed!', 'data' => $tickets, 'response_code' => 1], 200);
        } catch (\Throwable $th) {
            \Log::info($th->getMessage());

            return response()->json(['message' => $th->getMessage(), 'data' => [], 'response_code' => 1], 201);
        }

错误如下

{"message":"Client error: `GET https:\/\/ticket.fullstackllc.net\/api\/tickets?requester=admin` resulted in a `422 Unprocessable Entity` response:\n{\"error\":\"No query results for model [App\\\\Requester]. in \\\/var\\\/www\\\/handesk\\\/vendor\\\/laravel\\\/framework\\\/src\\\/Illumina (truncated...)\n","data":[],"response_code":1}

我使用邮递员通过调用api获取数据。 我不确定是怎么了。 我认为目前有错误的api调用 在我的后端,我可以获取任何日志。

App\Http\Controllers\Api\TicketsController;

这是我的代售单的后端

public function index()
    {
        \Log::info('this is route name');
        $requester = Requester::whereName(request('requester'))->orWhere('email', '=', request('requester'))->firstOrFail();
        if (request('status') == 'solved') {
            $tickets = $requester->solvedTickets;
        } elseif (request('status') == 'closed') {
            $tickets = $requester->closedTickets;
        } else {
            $tickets = $requester->openTickets;
        }
        return $this->respond($tickets);
    }

0 个答案:

没有答案