【发布时间】:2012-03-05 22:00:31
【问题描述】:
我正在将网站重构为 Zend Framework 1.11/Doctrine 2,并且有许多包含带下划线的列名的遗留表(例如,plant_id)。 (一开始很暗示,但我对 Doctrine 印象深刻!)
我已经成功地设置了一个学说实体(遵循 WJ Gilmores 的优秀著作 Easy PHP with the Zend Framework),但是当我们使用 Doctrine 的 findOne 魔术查找器和包含下划线的遗留列名时遇到问题
代码
$plant = $this->em->getRepository('Entities\Plant')
->findOneByPlant_id('3571');
返回错误
Message: Entity 'Entities\Plant' has no field 'plantId'. You can therefore not call 'findOneByPlant_id' on the entities' repository
(顺便说一句,Doctrine 看起来还不错 - 我们已经创建了一个实体,使用 this 作为我们的列名,并且可以检索此列。)
在此期间,我们通过使用查询构建器构建查询解决了这个问题。
除了更改整个表格以删除下划线之外,还有其他不需要太多代码的更简单的解决方案吗(不容易,因为有很多遗留代码需要重新编写)?
【问题讨论】:
标签: zend-framework frameworks doctrine-orm