我在运行mysql的网站上实施doctrine时遇到了麻烦。
基本上,问题在于在列名中使用破折号。
我们使用标准方式命名表和列名,这是一个例子:vendor_point-of-sale
。在读取您已经或多或少知道这两者之间的联系的名称时,销售点实体与供应商实体相关联。
在vendor
表的示例中,我有一个名为point-of-sale_id
的列,同样,point-of-sale
表的主键也称为point-of-sale_id
。只有当我尝试在findBy
实体上调用vendor
时才会出现问题,它只是不创建子对象而且(我检查了日志)没有调用{{ 1}}表。
point-of-sale
实体上的基本对象查询(official doctrine documentation)可以正常工作,如果我按照here所述添加标识符引用。
以下是一些代码:
Vendor.orm.yml:
point-of-sale
Acme\Bundle\CoreBundle\Entity\VendorApiKey:
...
pointOfSale:
targetEntity: PointOfSale
cascade: { }
mappedBy: null
inversedBy: null
joinColumns:
point_of-sale_id:
name: `point-of-sale_id`
referencedColumnName: point-of-sale_id
orphanRemoval: false
...
之后我想做的就是:
findBy
不幸的是,这会返回$vendor->getPointOfSale()
。如果我不加引号,它会给我一个mysql异常。
我想发布他们的论坛并可能创建错误请求,但我想先听听你对此有何看法。
谢谢,非常感谢所有关于如何使这项工作的建议。
更新:在进一步阅读后,我偶然发现this。这没有任何意义......如果我删除了引文,它会给我这个错误:
NULL
这是否意味着过时的文档?我很困惑。