Как установить поле даты и времени в симфонии 3 для обновления или вставки данных? - PullRequest
0 голосов
/ 10 мая 2018

Я пытаюсь установить поле даты и времени в Symfony 3.4 следующим образом:

$eventProject = new $eventProject();

$eventProject->setDateFrom('2018-05-09');

когда я сохраняю значения, это дает мне ошибку вроде:

SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'dateFrom' can
  not be null
In ConversionException.php line 95:

  Could not convert PHP value '2018-05-09' of type 'string' to type 'datetime
  '. Expected one of the following types: null, DateTime

Я не мог понять, что не так?

1 Ответ

0 голосов
/ 10 мая 2018

Вам нужно использовать объект PHP DateTime для установки даты.

$eventProject = new $eventProject();
$date = new \DateTime('2018-05-09');
$eventProject->setDateFrom($date);

Это также означает, что вам нужно работать с DateTime при получении даты.

$date = $eventProject->getDate();
var_dump($date->format("Y-m-d")); 
//string(10) "2018-05-09"

Обязательно используйте format для извлеченного объекта DateTime, если хотите получить дату в виде строки.

Это больше о том, как написан класс / сущность eventProject, а не что-то, что навязывается Symfony. Это, как говорится, довольно распространенный способ работы со временем в проектах PHP. В начале это может показаться немного неловким, но как только вы к этому привыкнете, вы обнаружите, что DateTime очень удобно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...