Извлечь данные в цикле php

85
28 ноября 2021, 10:30

Прошу помочь с задачей: есть цикл, в котором выводяться личные сообщения, юзера с его рефером (собеседником).

Нужно же получить id собеседника вне цикла, или же вытащить из цикла нужную информацию по id собеседника с которым ведется переписка. Что бы вывести его информацию, имя, картинку и тому подобное...

Или посоветуйте как лучше это сделать.

Доступ к чату с юзером открывается по ссылке, /refchat/messages/66427 (последнице фиры и есть id)

Функция с Model часта

public static function getMessages($ref_id, $user_id) {
$messages =  database::i()->refchat('state = ? and ((user_id = ? and target_user = ?) or (user_id = ? and (target_user = ? or target_user is NULL)))'
, 'complete', $user_id, $ref_id, $ref_id, $user_id)->order('created_at asc');
$counter = 0;
foreach ($messages as $message)
{
    if($message['target_user'] == $user_id)
    {
        $message['is_readed'] = 1;
        $message->update();
    }
    elseif($message['target_user'] == null)
        $counter++;
}   
$user = user::i()->getUser();
$user['read_ref_chat_count'] = $counter;
$user->update();
return $messages; }

Функция с Контроллера

    function ref_messages()
{
    $user = user::i()->getUser();
    $messages = model_refchat::getMessages($this->request[':id'], $user['id']);
    $this->assign('messages', $messages);
    $this->_template = 'ref_messages.tpl';
}

цикл в html

{% if messages|length > 0 %}
  <div class="conversations-content bg-white">
    {% for message in messages %}
      <div class="message-content-wrapper">
        <div class="message {% if user.id == message.user_id %} message-out {% else %} message-in {% endif %}">
          <div class="avatar avatar-sm">
            {% if message.user.hasAvatar() %}
              <img src="{{ message.user.getAvatar(100) }}" class="avatar-img rounded-circle border border-white" id="user-replace-avatar">
            {% else %}
              <img src="{{ message.user.getAvatar(100) }}" class="avatar-img rounded-circle border border-white" id="user-avatar">
            {% endif %}
          </div>
          <div class="message-body">
            <div class="message-content">
              <div class="name">
                <font style="vertical-align: inherit;">
                  <font style="vertical-align: inherit;">
                    {% if user.id == message.user_id %}
                      <span class="d-none">{{ message.user.last_name }}</span>
                    {% else %}
                      {{ message.user.name }}
                    {% endif %}
                  </font>
                </font>
              </div>
              <div class="content">
                <font style="vertical-align: inherit;">
                  <font style="vertical-align: inherit;">
                    {{ message.body }}
                  </font>
                </font>
              </div>
            </div>
            <div class="date">
              <font style="vertical-align: inherit;">
                <font style="vertical-align: inherit;">{{ message.created_at|date('d.m.y H:i') }}
                </font>
              </font>
            </div>
          </div>
        </div>
      </div>
    {% endfor %}
  </div>
{% endif %}

Если вопрос не совсем понятный, буду рад расписать более подробно для вас.

READ ALSO
CodeIgniter 3 выбор языка валидации

CodeIgniter 3 выбор языка валидации

есть скрипт проверяющий на валидацию, он рабочий, но нужно изменить язык, в папке system/language присутствует только английский язык

203
Как сделать запрос интервал дат

Как сделать запрос интервал дат

В mysql лежит дата в таком виде 2019-11-27 10:50:21

86
OCI8 в OpenServer

OCI8 в OpenServer

Использую Open Server, необходимо подключить OCI8Зашел в файл C:\OpenServer\OSPanel\userdata\config\PHP_5

88