0
FOSMessageBundleを使用しているときに私のコードでちょっと詰まっています。 私はFOSMessageBundleが例外をスローする "メッセージはNewThreadMessageインスタンスでなければなりません" CBundle Entity Message NewThreadMessage "given"
/**
* Create a new message thread
*
* @return Response
*/
public function newThreadAction()
{
$form=$this->container->get('fos_message.new_thread_form.factory')->create();
$formHandler=$this->container->get('fos_message.new_thread_form.handler');
if ($message = $formHandler->process($form)) {
return new RedirectResponse($this->container->get('router')->generate('fos_message_thread_view', array(
'threadId' => $message->getThread()->getId()
)));
}
return $this->container->get('templating')->renderResponse('CBundle:Message:start.html.twig', array(
'form' => $form->createView(),
'data' => $form->getData()
));
}
ようnewThreadActionを持っており、私のフォームハンドラが
namespace CBundle\Form\Handler;
use FOS\MessageBundle\FormModel\AbstractMessage;
use CBundle\Entity\Messsage\NewThreadMessage;
use FOS\MessageBundle\FormHandler\NewThreadMessageFormHandler as cBaseHandler;
class NewThreadMessageFormHandler extends cBaseHandler
{
/**
* Composes a message from the form data
*
* @param AbstractMessage $message
* @return MessageInterface the composed message ready to be sent
* @throws InvalidArgumentException if the message is not a NewThreadMessage
*/
public function composeMessage(AbstractMessage $message)
{
if (!$message instanceof NewThreadMessage) {
// if (!$message instanceof NewThreadMessage) {
throw new \InvalidArgumentException(sprintf('Message must be a NewThreadMessage instance, "%s" given', get_class($message)));
}
return $this->composer->newThread()
// ->setSubject($message->getSubject())
->setSubject(" ")
->addRecipient($message->getRecipient())
->setSender($this->getAuthenticatedParticipant())
->setBody($message->getBody())
->getMessage();
}
} 私は、メッセージのフォームを送信する場合ので、私は
Message must be a NewThreadMessage instance, "CBundle\Entity\Message\NewThreadMessage" given
私のようなエラーを得ていますconfig.ymlは
fos_message:
db_driver: orm
thread_class: AppBundle\Entity\Message\Thread
message_class: AppBundle\Entity\Message\Message
new_thread_form:
type: app_user_new_thread.new_thread_form.type
handler: app_user_new_thread_form.handler
# handler: fos_message.new_thread_form.handler
# model: FOS\MessageBundle\FormModel\NewThreadMessage
model: CBundle\Entity\Message\NewThreadMessage
# validation_groups: [ConnThread]
私に助けてあらかじめ感謝してください
paramsに '%fos_message.new_thread_form.model%'を設定しましたか? – mmmm