Короткая версия:
Кто-нибудь знает, как сделать простую вставку даты с помощью Doctrine2? Мне нужно вставить дату в формате ГГГГ-ММ-ДД («Y-m-d») в поле «Дата» MySQL.
Если вы уже знаете, как это сделать, вы можете пропустить объяснение ниже того, что я пробовал до сих пор. В противном случае более подробная информация о моей проблеме приведена ниже перерыва.
Длинная версия:
У меня есть приложение Doctrine2 CRUD, и мне нужно вставить дату отправки формы в базу данных MySQL.
Дата представляется в форме с использованием трех раскрывающихся меню: Год, Месяц и День.
В моем методе репозитория Doctrine я использую функцию date () для преобразования представленных значений в дату, а затем вызываю метод с именем setCreated () в своем классе сущностей:
$string = $values['year'] . '-' . $values['month'] . '-' . $values['day'];
$date = date('Y-m-d', strtotime($string));
$item->setCreated($date);
Затем в setCreated () сначала я попытался передать дату следующим образом:
public function setCreated($date) {
$this->created = $date;
}
Но при этом появляется сообщение об ошибке: «Вызов функции-члена формата () для необъекта в ... Doctrine \ DBAL \ Types \ DateType.php".
Затем я попытался изменить сеттер следующим образом:
public function setCreated($date) {
$this->published = new \Doctrine\DBAL\Types\DateType($date);
}
Но это тоже не работает: «Вызов приватной доктрины \ DBAL \ Types \ Type :: __ construct () ...»
Наконец я попытался создать простой объект Date для вставки:
public function setCreated($date) {
$this->created = new \Date($date);
}
Это дает мне такую ошибку: «Класс« Дата »не найден в пути \ К \ Entity \ Item.php ...»
Я также пробовал указанную выше версию без начального обратного слеша для даты, что выдает мне следующее сообщение об ошибке: «Предупреждение: require (Path \ Entity \ Date.php) не удалось открыть поток. Нет такого файла или каталога в Path \ Doctrine \ Common \ ClassLoader.php ... "
(Для подтверждения, мои пути включения правильно настроены в php.ini - в частности, include_path \php\PEAR
, в котором находится Date.php.)
В руководстве Doctrine есть объяснение о работе с экземплярами DateTime, но мне не нужно сохранять время, только дату как YYYY-MM-DD.
Кажется, это будет довольно распространенная проблема - кто-нибудь видит, что я делаю неправильно, и / или знает, как сделать вставку даты в Doctrine2?