gpt4 book ai didi

php - Doctrine [语义错误] 错误 : Class xxx has no field or association named yyy

转载 作者:行者123 更新时间:2023-12-03 20:36:36 31 4
gpt4 key购买 nike

在过去的几天里,我遇到了以下 Doctrine 问题 - 因为我不允许粘贴任何源代码,所以我将尝试简要描述一下:
我正在使用 Doctrine orm,我需要在 DB 中的现有表中添加一个新列 - DB 和实体之间的映射是通过 xml 映射文件完成的 - 这是我已经进行的步骤:

  • 我已添加到实体文件中 - 我们称之为 Entity.php - 该新列的新字段
  • 我已将有关此 newColumn 的信息作为新 XML 元素“字段”
  • 添加到 XML 映射文件中
  • 我已经根据编辑的映射文件
  • 执行了 Doctrine 命令来更改数据库的架构
  • 我已更新 EntityRepository.php 文件中的查询以包含此新列。

  • 然后当我运行应用程序时,我仍然收到此错误:
     [Semantical Error] Error: Class Entity.php has no field or association named newColumn
    因此,如果我正确理解这一点,那就是说 Entity.php 中的字段 newColumn 应该是映射的新 DB 列。
    但事实并非如此,因为这是我所做的第一步。
    我已经尝试过这个:
  • 检查所有文件中的 newColumn 名称中没有错字
  • 检查 Entity.php 中的字段是否具有适当的访问修饰符 - 即它不是私有(private)的
  • 缓存被清除,因为存储了一些坏版本的 Entity.php
  • 我已经重新启动了应用程序在
  • 上运行的 apache 服务器

    最佳答案

    检查您的元数据缓存。如果您使用一些外部缓存机制(如 Memcached 或 xcache),它可能会在您的虚拟主机之间共享。如果一个 vhost 使用自己的映射元数据填充缓存(在 apache 重新启动后),第二个 vhost 只使用它而不关心不同的 .dcm.xml 映射。

    如果它是您的开发服务器/虚拟主机,通常最好完全禁用 ORM 缓存(config/autoload/database.local.php)。

    关于php - Doctrine [语义错误] 错误 : Class xxx has no field or association named yyy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23107952/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com