Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony相同代码,不同服务器,无字段或关联_Php_Symfony_Doctrine Orm - Fatal编程技术网

Php Symfony相同代码,不同服务器,无字段或关联

Php Symfony相同代码,不同服务器,无字段或关联,php,symfony,doctrine-orm,Php,Symfony,Doctrine Orm,我有两台服务器(本地服务器和一台生产服务器)。它们具有相同的设置。当我想让我的新代码投入生产时,我只更新src文件夹。所以当我推送一个版本时,这个文件夹是完全相同的 在我的本地服务器上,实体/表中的新列可以工作,并且可以创建、更新等。但是在我的生产环境中,这个新列没有被注意到,甚至没有被doctrine选中 新列位于我的数据库(生产数据库和本地数据库)中,位于我的entity.php文件中,位于我的entity.orm.yml文件中 我做了app/console缓存:clear选项。dev和pr

我有两台服务器(本地服务器和一台生产服务器)。它们具有相同的设置。当我想让我的新代码投入生产时,我只更新src文件夹。所以当我推送一个版本时,这个文件夹是完全相同的

在我的本地服务器上,实体/表中的新列可以工作,并且可以创建、更新等。但是在我的生产环境中,这个新列没有被注意到,甚至没有被doctrine选中

新列位于我的数据库(生产数据库和本地数据库)中,位于我的
entity.php
文件中,位于我的
entity.orm.yml
文件中

我做了
app/console缓存:clear
选项。dev和prod以及这两台服务器上


我做错了什么?

终于找到了解决办法

因为我没有在本地服务器上使用元数据缓存,但在生产服务器上使用了元数据缓存,所以它保存了我的映射信息。这就是为什么道蒂不知道我有新专栏。解决方案是使用以下方法清除元数据缓存:

php bin/console原则:缓存:清除元数据


之后,我运行了
php bin/console原则:schema:update--dump sql
,得到了新的列。

auto_mapping在config.ymlare中可能没有设置为true您的本地服务器和生产服务器都在“prod”模式下运行吗?如果运行“应用程序/控制台条令:架构:更新--转储sql”,您会得到什么输出?是否更新了代理?@pcm auto-mapping设置为true。@AngeloA如果条令没有看到架构更新的这些字段,则在应用程序运行时将看不到这些字段。最典型的原因是生产环境中的entity.orm.yml文件与本地服务器上的文件不匹配,或者缓存未刷新。另一次我看到这个问题是orm.yml中的一个错误,但是它在两台服务器上都不起作用。