注意未读消息

时间:2017-06-05 19:53:40

标签: php symfony twig

我试图在聊天中注意到新的未反复邮件。我正在使用捆绑包并创建自己的好友列表。然后在聊天视图中,我可以选择要与之聊天的用户。我会告诉你我的代码因为我没有收到错误而且我不确定为什么这不起作用。

我的表上有一个名为reading的列,它使用布尔值,如果是未读消息则设置为0。

ChatController.php

在我的indexAction上我做了这个:

` $userConnected= $this->container->get('security.token_storage')->getToken()->getUser();

    $friends= $em->getRepository(Agenda::class)->findByIdUsuari($userConnected);  

    $messages=  $em->getRepository(Messages::class)->findByAddressee($userConnected); 

    $newmessage= array();
    foreach ($messages as $value) {
        if ($value->getReading() == 0) {
            $newmessage= $value->getAuthor()->getId();
        }
     } 

在我看来,我会打印用户和表单。

我打印用户的地方:

 <div id="selectUser">
        {% for user in users %}
            {% if user.id != currentUser.id %}              
                <a href="" onclick="return false;" data-number="{{ user.id }}" class="changeUser" >{{ user.username }}</a>
            {% endif %}          
        {% endfor %}
    </div>

如果我的列表的用户ID与我在变量$ newmessage上保存的相同,我该如何实现呢?我希望如果得到相同的id,这意味着得到0并且他不会阅读该消息,所以如果我可以检查我是否会实现一个会改变用户颜色的类名。

更新:

似乎没有工作因为它将Reading值设置为1并且我不知道为什么导致AjaxController它在我发送消息时设置为0并在用户读取时更改为1.

控制器:

https://pastebin.com/6LZ1FVG2

1 个答案:

答案 0 :(得分:1)

在控制器中渲染页面时,需要将变量传递给如下数组:

$this->render('default/index.html.twig', array(
    'newmessage' => $newmessage,
));

在您的树枝中,您可以使用newmessage变量,例如

{% if user.id == newmessage %}