FosMessageBundle sendId не может быть нулевым

Я реализовал fosMessageBundle с моим пакетом сообщений, но если я хочу отправить новое сообщение с помощью fos_message.composer, я получил эту ошибку:

    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

мой вопрос, почему пакет сообщений не установлен отправить идентификатор?


примечание: я отлаживал данные 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());

1 ответ

Задача решена!

manyToOne.sender.joinColumn.name в 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
Другие вопросы по тегам