2017-06-05 113 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