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