2012-04-04 10 views
14

Jak mogę przekazać PHP DateTime obiektu jako wartość pola bazy danych przy użyciu Doctrine \ DBAL?stosując metodę insert(), aby wstawić wartość DateTime z PHP Doctrine DBAL 2

$ DB jest Doctrine \ DBAL \ Connection instancji.

$DB->insert('table_name', [ 
    'field' => new \DateTime(), 
]); 

// Catchable fatal error: Object of class DateTime could not be converted to string 

Powyższy kod nie działa, a dokumentacja jest skąpa.

Wiedziałem na pewno, że można zapewnić DateTime obiekty bezpośrednio przy użyciu innej metody DBAL, jest to możliwe, aby to zrobić z wkładki()?

+1

Rozwiązanie znalezione. Wystarczy przekazać trzecią tablicę argumentów ("datetime") do metody insert(). Użyj "datetime" dla DateTime, PDO :: PARAM_STR dla ciągów znaków i PDO :: PARAM_INT dla liczb całkowitych. –

Odpowiedz

23
$DB->insert('table_name', [ 
    'foo' => 'foo', 
    'bar' => 17, 
    'field' => new \DateTime(), 
], [ 
    PDO::PARAM_STR, 
    PDO::PARAM_INT, 
    'datetime', 
]); 

Podstęp!))

+0

A co z kolejnością elementów w pierwszej tablicy? Przypuszczam, że gdy tablica par klucz-wartość zostanie zadeklarowana jako argument funkcji, kolejność klawiszy będzie zgodna z kolejnością ich deklarowania, ale co się stanie, jeśli tablica par klucz-wartość zostanie utworzona dynamicznie przez inną funkcję? –

Powiązane problemy