нулевые значения вставляются в базу данных - PullRequest
0 голосов
/ 31 мая 2018

У меня есть REST API, который должен сохранять содержимое JSON в базу данных MySQL.Однако он вставляет все как ноль?Это странно, потому что всякий раз, когда JSON отправляется из swift SDK, он работает просто отлично.

 public function saveTracking($request, $response, $args) {
        if(!$this->validToken($response)) {
            return $response;
        }
        $data = $request->getParsedBody();
        $tracking_data = json_decode(json_encode($data['tracking']), FALSE);
        $total_records = 0;
          //error_log(print_r($tracking_data, true));

        foreach($tracking_data as $key => $value) {
            $tracking = new EstablishmentTracking();
            $tracking->mobile_user_id = $this->authUser->id;
            $tracking->report_date = $value->report_date;
            $tracking->establishment_id = $value->establishment_id;
            if ($value->platform == MobileUser::ANDROID || $value->platform == MobileUser::IOS) {
                $tracking->platform = $value->platform;
            }
            $tracking->purchase_id = $value->purchase_id;

            error_log(print_r($tracking, true));
            $this->establishmentService->saveEstablishmentTracking($tracking);
            $total_records++;
        }
        $arr = array("status" => "ok"
                    ,"total_records" => $total_records
                    );
        print_r($arr);
        $newResponse = $response->withJson($arr);
        return $newResponse;
    }

После добавления строки, которая печатает содержимое переменной, я получаю следующее:

stdClass Object
(
    [establishment_id] => 39
    [report_date] => 2018-05-31 18:45:05
    [platform] => android
    [purchase_id] => 0

Не правильно ли отправляется JSON в виде массива?В чем проблема?

1 Ответ

0 голосов
/ 08 июня 2018

Я предполагаю, что причиной вызывающего объекта json является $ tracking_data. Используемому вами декодеру json необходимо иметь второе значение от false до true, это преобразует его в массив php, который можно повторять с ключами. StdClass может не раскрывать свои свойства

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...