- Symfony v6.4.8
- doctrine/orm 2.19.5
- phpunit/phpunit 9.6.19
Он выполняет запрос API в другой системе, получает эти данные, объединяет их с данными локальной базы данных и создает новую запись в моей базе данных.
У меня проблема в том, что / после persist()/flush() в базе данных: иногда поле $contract->eup имеет значение NULL в база данных.
Код: Выделить всё
eup
Код: Выделить всё
private function saveContract(EntityManager $em, array $data): ContractData
{
$contract = new ContractData();
// [... some more variables]
$contract->setEup($data['eup']); // example: "2024-06-29"
$em->persist($contract);
$em->flush();
return $contract;
}
Когда я вызываю свой API с помощью Postman, запись создается правильно, а поле eup в базе данных заполняется строкой.
Когда я вызываю свой API с помощью Postman, запись создается правильно, а поле eup в базе данных заполняется строкой.
Когда я вызываю свой API с помощью Postman, запись создается правильно, а поле eup в базе данных заполняется строкой.
Когда я вызываю свой API с помощью Postman, запись создается правильно, а поле eup в базе данных заполняется строкой.
Когда я вызываю свой API с помощью Postman, запись создается правильно, а поле eup в базе данных заполняется строкой.
p>
Но когда я запускаю тест phpunit php bin/phpunit --filter myTest, он вызывает API, запись создается в базе данных, но поле eup имеет значение NULL.
- Другие поля этой записи сохраняются правильно на тесте.
- Также можно записать значение этого поля в другие поля.
< /li>
Также пробовал использовать более короткую строку, но она тоже не сохраняется. - Я я также запустил тест с помощью xdebug и могу подтвердить (вместе с моим коллегой), что $contract->eup установлен и заполнен строкой в $em->persist($contract);, но когда мы смотрим после сброса в базе данных SELECT * FROM ... поле eup равно NULL.
Подробнее здесь: https://stackoverflow.com/questions/786 ... es-null-in