2017-06-05 138 views
1

我试图注意到我聊天时未消除的新消息。我正在使用捆绑软件,并创建自己的好友列表。然后,在我的聊天视图中,我可以选择要与哪个用户聊天。我会告诉你我的代码,因为我没有得到错误,我不知道为什么这不起作用。通知未读消息

我在桌子上有一个名为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,他不读取消息,所以如果我可以检查我将实现一个类,将改变用户的名字的颜色。

UPDATE:

似乎没有工作的原因,而是设置读取值设置为1,我不知道为什么AjaxController导致它设置在0时,我发送消息,并更改为1,当用户阅读它。

控制器:

https://pastebin.com/6LZ1FVG2

回答

1

当您呈现您的控制器内部网页上,您需要将变量传递到像这样的数组:

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

后您的树枝,您可以使用newmessage变量像这样例如

{% if user.id == newmessage %} 
+0

对不起,我没有分享我渲染的内容。 返回$这 - >渲染( 'BackEndBundle:默认:chat.html.twig',阵列( 'chatForm'=> $ chatForm-> CreateView的(), '用户'=> $用户, “朋友'=> $ friends, 'newmessage'=> $ newmessage, 'getMessageUrl'=> $ getMessageUrl, 'currentUser'=> $ this-> getUser())); } – Pillow

+0

所以你可以用newmessage检查你的user.id里面的小枝吗? –

+0

是的我尝试应用样式如果user.id == newmessage但似乎没有工作。 – Pillow