我正在使用FOSMessageBundle,我认为我很好地遵循了说明,但我似乎无法让数据库正常生成...
继承我的消息实体:
<?php
namespace Acme\Bundle\DemoBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use JMS\Serializer\Annotation as JMS;
use FOS\MessageBundle\Entity\Message as BaseMessage;
use FOS\MessageBundle\Model\ParticipantInterface;
/**
* Message
*
* @ORM\Entity()
* @JMS\ExclusionPolicy("All")
*/
class Message extends BaseMessage implements EntityInterface
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
* @JMS\Groups({"list", "default"})
* @JMS\Expose()
*/
protected $id;
/**
* @var Thread
*
* @ORM\ManyToOne(targetEntity="Thread", inversedBy="messages", cascade={"persist"})
* @ORM\JoinColumn(name="thread_id")
* @JMS\Groups({"default"})
*/
protected $thread;
/**
* @ORM\ManyToOne(targetEntity="User")
* @var ParticipantInterface
*/
protected $sender;
/**
* @ORM\OneToMany(targetEntity="MessageMetadata", mappedBy="message", cascade={"all"})
* @var MessageMetadata
*/
protected $metadata;
}
我的config.yml
fos_message:
db_driver: orm
thread_class: Acme\Bundle\DemoBundle\Entity\Thread
message_class: Acme\Bundle\DemoBundle\Entity\Message
问题是,我的表格最终只有id
,thread_id
和sender_id
。它遗漏了其余的田地。
我缺少什么!
答案 0 :(得分:0)
检查是否所有类都已正确映射:
php app/console doctrine:mapping:info
如果没有,你必须将消息元数据发送到配置文件
message_class: Acme\Bundle\DemoBundle\Entity\Message
答案 1 :(得分:0)
我不确定,但在您的情况下,您似乎对此实体有两种不同的配置 - 您的注释和FOSCommentBundle
中的xml
请将您的配置更改为XML格式,例如https://github.com/FriendsOfSymfony/FOSMessageBundle/blob/master/Resources/config/doctrine/Message.orm.xml,然后再次检查。
问候,
答案 2 :(得分:0)
Merk,该项目的贡献者之一指出我在实体经理下设置auto_mapping
到true
。
一旦我设定了这个,就解决了我的问题!
答案 3 :(得分:0)
对我来说,自动映射功能不起作用,我收到了消息
“ doctrine.orm”下无法识别的选项“ auto_mapping”
我通过添加FOSMessageBundle来解决此问题:
orm:
auto_generate_proxy_classes: "%kernel.debug%"
default_entity_manager: default
entity_managers:
default:
naming_strategy: doctrine.orm.naming_strategy.underscore
connection: default
second_level_cache:
enabled: true
mappings:
AppBundle: ~
UserBundle: ~
FOSMessageBundle: ~