Доктрина не сбрасывает нулевой постоянный объект сущности

Я пытаюсь сбросить постоянный объект сущности, но получаю следующее сообщение об ошибке:

Fatal error: Call to a member function format() on a non-object in C:\xampp\htdocs\project\vendor\doctrine\dbal\lib\Doctrine\DBAL\Types\DateType.php on line 44

На самом деле это метод действия:

public function processRegisterFormAction()
{

    $data = filter_var_array($_POST['form'], FILTER_SANITIZE_STRING);
    extract($data);

    $customer  = new Customer();

    $dob = explode('/', $date_of_birth);
    $date_of_birth = $dob[2] . '-' . $dob[1] . '-' . $dob[0];

    $datetime = date('Y-m-d H:i:s');

    $customer->setEmail($email);
    $customer->setPassword($password);
    $customer->setName($name);
    $customer->setGender($gender);
    $customer->setDateOfBirth($date_of_birth);
    $customer->setZipcode($zipcode);
    $customer->setState($state);
    $customer->setCity($city);
    $customer->setDistrict($district);
    $customer->setAddress($address);
    $customer->setStreetNumber($street_number);
    $customer->setCompanyName($company_name);
    $customer->setCreated( $datetime);
    $customer->setLastModified($datetime);

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

    return new Response('Created Customer ' . $customer->getId() );

}

В моем Entity я объявил $dateOfBirth, $created, $lastModified как «String», потому что я думал, что это связано с датой и временем, но нет!

И я сбросил $em->persist($customer), он возвращает NULL

die(var_dump($em->persist($customer)));

Заранее спасибо!


person Gilberto Albino    schedule 30.08.2013    source источник


Ответы (1)


Проблема не связана с Doctrine. Ответ находится в сообщении об ошибке, которое вы получили.

Вы вызываете format() для переменной, которая не является объектом DateTime. Перед вызовом format() хелпера убедитесь, что ваша переменная является экземпляром DateTime.

person Ahmed Siouani    schedule 30.08.2013
comment
Неа! Я его нигде не использую! - person Gilberto Albino; 30.08.2013
comment
Затем вы должны сбросить свои атрибуты сущности, подобные дате и времени, и убедиться, что вы передаете правильный объект/строку, используя правильный формат. Потому что format() вызывает где-то переменную, которая должна быть экземпляром DateTime, но это не так. Обновите свой вопрос, указав определение атрибутов dateOfBirth, created и lastModified. - person Ahmed Siouani; 30.08.2013