0
我在我的项目中使用FOSMessage(https://github.com/FriendsOfSymfony/FOSMessage),我想覆盖实体的表名。Symfony 3 |覆盖实体表名
例如在FOSMessage(\ FOS \信息\驱动程序\原则\ ORM \实体\对话),我有:
/**
* @ORM\Table(name="fos_message_conversations")
* @ORM\Entity
*/
class Conversation extends BaseConversation
...
// properties
...
而在我的自定义实体,我做的:
/**
* @ORM\Table(name="user__message__fos_message_conversations")
* @ORM\Entity
*/
class Conversation extends \FOS\Message\Driver\Doctrine\ORM\Entity\Conversation
{
}
它的工作原理,但只适用于“无关系”属性。有“一对多”关系的属性,并且被忽略。 当我更新我的数据库时,我只有文本属性和id。例如,我没有“消息”关系。
我该怎么办?我只想改变表名。
嗨dragoste,谢谢你的回答,这很清楚。所以没有办法只创建自定义类,从Bundle中的扩展并更改table_name?我必须重新创建所有关系属性并用新的自定义实体重写关系“OneToMany”? – Aximem
是的。你会如何想象呢? 'Message :: conversation_id'指向哪里?您的自定义'对话'或FOS的'\ FOS \消息\驱动\ Doctrine \ ORM \实体\对话'?那么,它被映射到FOS的班级,这就是你的问题来自哪里。 –
是的,我明白了,我只是感到惊讶,我们无法在不扩展它的情况下更改捆绑实体表名称。而当我们扩展它时,我们必须重写属性,但好吧,我明白了。谢谢dragoste – Aximem