FosMessageBundle不起作用

时间:2017-01-17 14:15:03

标签: symfony

我正在使用FosMessageBundle

我一步一步的文档,我的表最终只有id,thread_id和sender_id。它遗漏了其余的田地。

当我想得到线程或消息计数时,控制器我得到错误:

line 0, col 165 near 'isRead = :is': Error: Class AppBundle\Entity\MessageMetadata has no field or association named isRead
扩展MessageMetaData类中的

isRead列isset ... config.yml

fos_message:
db_driver: orm
thread_class: AppBundle\Entity\Thread
message_class: AppBundle\Entity\Message

controller:和文档中的实体。

class MessageController extends Controller
{
    /**
     * @Route("/message/", name="message")
     */
    public function viewAction()
    {
    $provider = $this->get('fos_message.provider');

        $threads = $provider->getNbUnreadMessages();
        dump($threads);die;

    return $this->render('message/message.html.twig', ['message' => $threads]);

    }

1 个答案:

答案 0 :(得分:0)

似乎doctrine只会在映射/架构中没有错误时正确创建包含所有继承字段的实体。

我尝试检查我的映射是否正常,如同类似问题的答案中所解释的那样:https://stackoverflow.com/a/21155874/3864997。这没有产生任何错误,所以我查看了doctrine提供的其他命令。

我跑php bin/console doctrine:schema:validate并被告知其他实体的某些映射(它们与FOSMessageBundle所需的实体无关)无效。这对我来说似乎很有趣,因为symfony中的调试栏没有向我显示那些,尽管它在过去向我展示了类似的错误。

我修复了这些,然后运行php bin/console doctrine:schema:update --dump-sql。输出现在包括将缺少的继承字段添加到数据库的语句。