Есть база личных сообщений {pm} id, user_id(кому сообщение), sender_id(кто посылает) и
status
self::STATUS_UNREAD => 'Не прочитано', 0
self::STATUS_READ => 'Прочитано', 1
self::STATUS_DELETE => 'Удалено', 2
Когда юзер заходит в сообщения он видит список людей приславших ему сообщения, их я вывожу через Gridview
вот таким запросом
$query = self::find()->where('
user_id = :user_id AND sender_id != :user_id AND status != :status',
[
'user_id' => Yii::$app->user->id,
'status' => Pm::STATUS_DELETE,
])
->groupBy('sender_id')
->with(['profile'])
->orderBy('id DESC');
Все хорошо выводит, НО в гриде там где ActionColumn я должен вывести конвертики, если есть сообщения со статусом STATUS_UNREAD (хотя бы одно сообщение) вывести закрытый конверт если все прочитаны то
сейчас у меня
[
'class' => 'yii\grid\ActionColumn',
'headerOptions' => ['width' => '50'],
'template' => '{view} {delete}',
'buttons' => [
'view' => function ($url, $data)
{
$icon = $data->status == 0 ? '<i class="fa fa-envelope"></i>' : '<i class="fa fa-envelope-o"></i>';
return Html::a($icon, ['view', 'id' => $data->sender_id]);
},
'delete' => function ($url, $data)
{
return Html::a('<i class="fa fa-trash"></i>', ['delete', 'id' => $data->sender_id], ['data' => ['confirm' => 'Вы уверены?']]);
},
],
],
но это не срабатывает, мне надо как-то узнать есть ли хоть одно сообщение не прочитано. (status=0)
То есть где-то в запросе мне надо подшаманить, но как я не знаю, есть мысли?