Doktrin tidak menghapus objek entitas yang masih ada

Saya mencoba menghapus objek entitas yang ada, tetapi saya menerima pesan kesalahan ini:

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

Sebenarnya ini adalah metode tindakannya:

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() );

}

Di Entitas saya, saya telah mendeklarasikan $dateOfBirth, $created, $lastModified sebagai "String" karena saya pikir itu adalah sesuatu yang terkait dengan datetime, tapi, tidak!

Dan saya membuang $em->persist($customer) dan mengembalikan NULL

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

Terima kasih sebelumnya!


person Gilberto Albino    schedule 30.08.2013    source sumber


Jawaban (1)


Masalahnya tidak terkait dengan Doktrin. Jawabannya ada pada pesan error yang Anda terima.

Anda memanggil format() pada variabel yang bukan objek DateTime. Pastikan variabel Anda merupakan turunan dari DateTime sebelum memanggil format() helper.

person Ahmed Siouani    schedule 30.08.2013
comment
Tidak! Saya tidak menggunakannya di mana pun! - person Gilberto Albino; 30.08.2013
comment
Anda kemudian harus membuang atribut entitas seperti tanggal-waktu dan memastikan Anda meneruskan objek/string yang tepat menggunakan format yang tepat. Karena format() memanggil suatu tempat pada variabel yang harus berupa turunan DateTime tetapi sebenarnya bukan. Perbarui pertanyaan Anda dengan definisi atribut dateOfBirth, Created, dan LastModified Anda. - person Ahmed Siouani; 30.08.2013