我目前正在使用symfony 3构建订阅表单,所有工作都应该在开发环境中。一旦我将它部署到生产环境中,一切工作都很好 - 数据就像第一个用户一样被推送到数据库。但是当我关闭网站时,再次打开它,完成表单并尝试提交它 - 数据不会被推送到数据库。我当时没有遇到任何特殊错误,看起来它正在尝试将其推送到数据库,但后来在后台发生了一些崩溃,最后我完成了。
这似乎是部署问题,但我似乎无法弄清楚哪一个。我正在使用deployer.org部署我的应用程序
部署i时遇到此错误“无法为可写dirs设置正确的权限。您需要配置sudo的sudoers文件以不提示输入密码,或手动设置正确的权限。”我没有给予任何特别的关注,因为我的网站已经部署了,网站的一位用户确实推送到了DB。
我使用MySql作为数据库
任何帮助都很受欢迎。
答案 0 :(得分:0)
终于搞清楚了。在我的SubscriberDetails实体中,我将id设置为自动生成(例如@ORM\GeneratedValue(strategy="AUTO")
),并且由于我不确定的原因,并且想知道这在dev上工作得很好但是在prod上根本没有工作。因此,解决方法是从实体级别删除自动生成并通过以下方式在控制器中进行模拟:
$query = $em ->createQuery('SELECT MAX(s.id) FROM AppBundle:SubscriberDetails s');
$newSubscriber ->setId($query->getSingleScalarResult() + 1);
这对我有把戏