2013-12-23 5 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 datas를 디버깅했습니다. 모든 데이터가 괜찮은 것 같습니다.


번호 :

$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

문제를 해결!

manyToOne.sender.joinColumn.name in message.orm.yml은 잘못 작성되었습니다.

잘못된 :

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