2013-12-23 24 views
1

我实现fosMessageBundle我的消息包,但是如果我想发送新邮件时使用fos_message.composer,我得到这个错误:FosMessageBundle sendId不能为空

An exception occurred while executing 'INSERT INTO Message (body, created_at, threadId, sendId) VALUES (?, ?, ?, ?)' with params ["Test mesaj\u0131", "2013-12-23 12:15:48", 32, null]: 

SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'sendId' cannot be null 

我的问题是,为什么消息捆绑没有设置发送ID?


注意:我正在调试setSender数据。每个数据似乎都没问题。


代码:

$sender  = $this->getUser(); 
     $threadBuilder = $this->get('fos_message.composer')->newThread(); 
     $threadBuilder-> 
      addRecipient($clinicOwner) 
      ->setSender($sender) 
      ->setSubject($form['subject']) 
      ->setBody($form['message']); 
     $sender = $this->get('fos_message.sender'); 
     $sender->send($threadBuilder->getMessage()); 

回答

0

问题解决了!

message.orm.yml中的manyToOne.sender.joinColumn.name写错了。

错误:

manyToOne: 
thread: 
    targetEntity: ATL\MessageBundle\Entity\Thread 
    inversedBy: messages 
    joinColumn: 
    name: threadId 
    referencedColumnName: id 
sender: 
    targetEntity: ATL\UserBundle\Entity\User 
    joinColumn: 
    name: **threadId** 
    referencedColumnName: id 

真:

manyToOne: 
thread: 
    targetEntity: ATL\MessageBundle\Entity\Thread 
    inversedBy: messages 
    joinColumn: 
    name: threadId 
    referencedColumnName: id 
sender: 
    targetEntity: ATL\UserBundle\Entity\User 
    joinColumn: 
    name: sendId 
    referencedColumnName: id