将Doctrine与视图一起使用 - 生成dud'id'字段

时间:2010-08-20 09:58:20

标签: php mysql views doctrine yaml

我有一个数据库(是的,那个),通过视图比原始表更容易访问。总的来说,这与Doctrine非常相似,但有一个问题。从数据库模式生成YAML时,Doctrine无法识别视图表中的主键,因此它发明了一个名为“id”的语句。从中生成类意味着所有查询都因缺少此id字段而失败。

有什么方法可以提示生成器脚本它不应该创建这个字段,并指向一个更合适的字段?我可以看到如何在YAML中或在带注释的类中执行此操作,但无法在数据库中执行此操作。

建议欢迎。

(任何关注我的问题的人(为什么?)可能会弄清楚我对Doctrine和这个数据库有多大的乐趣。我认为它被称为“学习经验”。) < / p>

2 个答案:

答案 0 :(得分:0)

我不知道如何在YAML中执行此操作,但您只需从生成的PHP(Base)文件中删除ID列的定义即可。不是最“优雅”的解决方案,但我认为Doctrine的传统是总是添加一个主键。

顺便说一下,http://www.doctrine-project.org/projects/orm/1.2/docs/manual/component-overview/en#views有什么用处吗?

答案 1 :(得分:0)

也许不完全是你问的但是 另一个解决方案是将它放在模型类

public function setUp() {
    Doctrine_Core::getTable('your_view_name')->removeColumn('id');
    parent::setUp();
}

希望能帮助解决此问题的人