Форма Symfony 3 не сохраняется в базе данных

В настоящее время я создаю форму подписки с Symfony 3, и все работает так, как должно в среде разработки. После того, как я разверну его в производство, все вначале работает нормально - данные помещаются в базу данных, как и для первого подписчика. Однако, когда я закрываю сайт, снова открываю его, заполняю форму и пытаюсь отправить - данные не помещаются в БД. Я не получаю какой-либо конкретной ошибки в то время, похоже, что она пытается отправить ее в базу данных, но затем что-то падает на заднем плане, и я заканчиваю в конце.

Мне кажется, это проблема развертывания, но я не могу понять, какая именно. Я развертывал свое приложение с deployer.org

При развертывании я получал эту ошибку: "Невозможно настроить правильные разрешения для записываемых каталогов. Вам необходимо настроить файлы sudoers sudo таким образом, чтобы они не запрашивали пароль, или настроить правильные разрешения вручную". Я не уделял этому особого внимания, так как мой веб-сайт развернулся, и 1 пользователь веб-сайта просто отлично перешел на БД.

Я использую MySql в качестве базы данных

Любая помощь очень ценится.

1 ответ

Наконец-то понял это. В моей сущности SubscriberDetails у меня был идентификатор, настроенный для автоматической генерации (например, @ORM\GeneratedValue(strategy="AUTO")) и по причинам, в которых я не уверен, и хотел бы узнать, что это хорошо работает на dev, но совсем не работает на prod. Поэтому решение этой проблемы состояло в том, чтобы удалить автоматическую генерацию с уровня сущности и моделировать ее в контроллере с помощью:

$query = $em ->createQuery('SELECT MAX(s.id) FROM AppBundle:SubscriberDetails s');
$newSubscriber ->setId($query->getSingleScalarResult() + 1);

Это помогло мне

Другие вопросы по тегам