我正在使用默认的find((方法获取数据,直到我向实体添加了一个新属性之前,所有内容都可以:相同的代码没有检索新列,我在生成的SQL查询中看不到它!
我添加了其他类型不同的属性,问题仍然存在:SQL查询中不可见新属性!
这是doctrine:schema:validate
的结果:
Mapping
-------
[OK] The mapping files are correct.
Database
--------
[ERROR] The database schema is not in sync with the current mapping file.
所以看来模式不正确,我该如何找到问题?
更新1
我有一个没有数据库错误的项目。我已经更新了现有实体:
bin/console make:entity
然后更新了架构:
bin/console doctrine:schema:update --force
但是新列未检索!
更新2
我生成了一个具有相同属性的新实体,学说返回所有列。我在两个实体和两个存储库之间进行了差异:它们是相同的!
我已经清除了学说的缓存:
php bin/console doctrine:cache:clear-metadata
php bin/console doctrine:cache:clear-query
php bin/console doctrine:cache:clear-result
...但是问题仍然存在
这是一个学说的缓存问题,这是我的学说上的一部分。yaml:
orm:
metadata_cache_driver: apcu
result_cache_driver: apcu
query_cache_driver: apcu
我试图清除缓存php -r "apcu_clear_cache();"
:无效!所以我更改了缓存:
orm:
metadata_cache_driver: array
result_cache_driver: array
query_cache_driver: array
现在正常工作:(