Symfony2, Doctrine - flush () возвращает ошибку format ()

1

У меня проблема с сохранением данных в базе данных. Команда Doctrine - flush() возвращает

Ошибка. Вызовите функцию-член() для не-объекта в /Users/magdalena/Sites/webping/vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/DateTimeType.php строке 53

каждый раз, когда я пытаюсь его сохранить. Я много раз проверял формат даты. Это дата, которую я хотел бы сохранить:

$currentDate = new \DateTime('now');
which generate: 
["date"]=>   object(DateTime)#712 (3) {
    ["date"]=>
    string(26) "2015-05-25 11:57:19.000000"
    ["timezone_type"]=>
    int(3)
    ["timezone"]=>
    string(13) "Europe/Warsaw"   }

Что с этим не так?

Это функция, которая сохраняет данные:

$this->setUserId($data['userId']);
            $this->setPackageName($data['packageName']);
            $this->setPackageId($data['packageId']);
            $this->setUnitPrice($data['unitPrice']);
            $this->setService($data['service']);
            $this->setSms($data['sms']);
            $this->setUpgrade(0);
            $this->setDate($currentDate);
            $this->setEndDate($data['endDate']);
            $this->setPaymentType($data['paymentType']);

            $this->setCompanyName($user['companyName']);
            $this->setCity($user['city']);
            $this->setAddress($user['address']);
            $this->setPostalCode($user['postalCode']);
            $this->setNip($user['nip']);
            $this->setStatus(0);

            $em = $em->getManager();
            $em->persist($this);
            $em->flush();

и данные:

$data:
array(10) {
  ["userId"]=>
  int(287)
  ["packageName"]=>
  string(8) "standard"
  ["packageId"]=>
  int(7)
  ["sms"]=>
  int(100)
  ["service"]=>
  int(10)
  ["endDate"]=>
  object(DateTime)#742 (3) {
    ["date"]=>
    string(26) "2015-06-27 12:00:00.000000"
    ["timezone_type"]=>
    int(3)
    ["timezone"]=>
    string(13) "Europe/Warsaw"
  }
  ["unitPrice"]=>
  string(5) "59.99"
  ["date"]=>
  object(DateTime)#715 (3) {
    ["date"]=>
    string(26) "2015-05-25 12:15:09.000000"
    ["timezone_type"]=>
    int(3)
    ["timezone"]=>
    string(13) "Europe/Warsaw"
  }
  ["upgrade"]=>
  NULL
  ["paymentType"]=>
  string(7) "przelew"
}



 $user:
    array(6) {
      ["companyName"]=>
      string(8) "vdbfgbfg"
      ["address"]=>
      string(5) "fgbfg"
      ["city"]=>
      string(5) "bfgbf"
      ["postalCode"]=>
      string(6) "23-098"
      ["nip"]=>
      string(10) "1234563218"
      ["payment"]=>
      string(7) "przelew"
    }

РЕДАКТИРОВАТЬ

Я заметил, что эта ошибка возникает каждый раз, когда я flash() данные в новом коде. Даже когда я не меняю дату. Предыдущий код работает без ошибок. Это может быть связано с кешем?

  • 1
    Как вы пытаетесь сохранить объект? Пожалуйста, добавьте еще немного кода.
  • 0
    возможный дубликат Doctrine 2: вызов функции-члена format () для необъекта ... в DateTimeType.php
Показать ещё 7 комментариев
Теги:
doctrine
doctrine2

2 ответа

1

CurrentDate выглядит нормально, это объект DateTime, который не будет проблемой, с другой стороны $this->setEndDate($data['endDate']); это поле, я не уверен, какой тип это, но я предполагаю, что это ваша проблема, иначе покажите нам свою сущность для получения дополнительной помощи. и проверьте свой endDate, если это объект DateTime или просто строка.

  • 0
    это endDate: ["endDate"] => object (DateTime) # 742 (3) {["date"] => string (26) "2015-06-27 12: 00: 00.000000" ["timezone_type"] = > int (3) ["timezone"] => string (13) "Europe / Warsaw"}
  • 0
    Покажите нам сущности
0

Он начал работать, когда я вызываю $em-> clear() перед установкой новых данных и flush(). Это хороший способ?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню