-1

我目前正在使用 symfony 3 构建订阅表单,并且在开发环境中的所有工作都应该如此。一旦我将它部署到生产环境中,一开始一切正常 - 数据被推送到数据库,就像它应该为第一个订阅者一样。但是,当我关闭网站时,再次打开它,填写表格并尝试提交 - 数据不会推送到数据库。当时我没有收到任何特定错误,看起来它正在尝试将其推送到数据库,但随后在后台崩溃了,最后我完成了。

这对我来说似乎是部署问题,但我似乎无法弄清楚是哪一个。我正在使用 deployer.org 部署我的应用程序

部署时我收到此错误“无法为可写目录设置正确的权限。您需要将 sudo 的 sudoers 文件配置为不提示输入密码,或手动设置正确的权限。” 我没有特别注意它,因为我的网站确实部署了,并且该网站的 1 个用户确实推送到 DB 就好了。

我正在使用 MySql 作为数据库

任何帮助都非常受欢迎。

4

1 回答 1

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);

这对我有用

于 2016-09-08T11:03:57.883 回答