在显示所有聊天消息时,我尝试更改消息的状态(已读或未读)。
实体
class Message
{
/**
* @ORM\Column(type="text",nullable=true)
* @var string|null
*/
public ?string $text;
/**
* @ORM\Column(type="guid",nullable=true)
* @var string|null
*/
public ?string $imageId;
/**
* @ORM\Column(type="datetime_immutable")
* @var DateTimeImmutable
*/
public DateTimeImmutable $createdAt;
/**
* @ORM\Column(type="boolean")
* @var bool
*/
public bool $received;
}
控制器 AllMessage
$message = $this->supportMessageRepository->findAllByUserId($customerId);
$items = array_map([$this->supportMessageMapper, 'map'], $message);
想法: 实现思路:当窗口打开或用户开始输入时,获取前面的flag为true | false,如果标志为 true,则更改消息的状态
问题: 但我不明白如何在收到列表时更改消息的状态(新的、尚未阅读的)。
问题: 如果用户每次调用一个方法获取消息列表,都会保存调用时间,如果比上一次长,则在实体中创建一个函数来改变状态。问题是,这行得通吗,还是我只能通过这种方式更改一条消息的状态?