Я использую пакет «Laravel Messenger» из Github Я изменил его по своему желанию,
Но теперь по какой-то причине он не выполняется «непрочитанный» function,
Это даже не показывает никаких ошибок, и я ничего не модифицировал в кодах, которые выполняют «непрочитанные».
Исходный проект использует данные «ContactsList» от пользователей table, я только что добавил новую таблицу («друзья») и через нее я передаю данные в свой «Список контактов».
Вот Контроллер Контактов: -
public function get(){
$sem = Auth::user()->id;
$contacts = DB::table('friends')
->where('my_id', $sem)
->get();
// $contacts = User::where('id', '!=', auth()->id())->get();
// get a collection of items where sender_id is the user who sent us a message
// and messages_count is the number of unread messages we have from him
$unreadIds = Message::select(\DB::raw('`from` as sender_id, count(`from`) as messages_count'))
->where('to', auth()->id())
->where('read', false)
->groupBy('from')
->get();
// add an unread key to each contact with the count of unread messages
$contacts = $contacts->map(function($contact) use ($unreadIds) {
$contactUnread = $unreadIds->where('sender_id', $contact->id)->first();
$contact->unread = $contactUnread ? $contactUnread->messages_count : 0;
return $contact;
});
return response()->json($contacts);
}
Единственное, что я изменил, это заменил это: - $contacts = User::where('id', '!=', auth()->id())->get()
Кому: - $sem = Auth::user()->id; $contacts = DB::table('friends') ->where('my_id', $sem) ->get();
Это мой список контактов. vue: -
<template>
<div class="contacts-list">
<ul>
<li v-for="contact in sortedContacts" :key="contact.friends_id" @click="selectContact(contact)" :class="{ 'selected': contact == selected }">
<div class="avatar">
<img :src="contact.profile_image" :alt="contact.name">
</div>
<div class="contact">
<p class="name">{{ contact.name }}</p>
<p class="email">{{ contact.email }}</p>
</div>
<span class="unread" v-if="contact.unread">{{ contact.unread }}</span>
</li>
</ul>
</div>
</template>
<script>
export default {
props: {
contacts: {
type: Array,
default: []
}
},
data() {
return {
selected: this.contacts.length ? this.contacts[0] : null
};
},
methods: {
selectContact(contact) {
this.selected = contact;
this.$emit('selected', contact);
}
},
computed: {
sortedContacts() {
return _.sortBy(this.contacts, [(contact) => {
if (contact == this.selected) {
return Infinity;
}
return contact.unread;
}]).reverse();
}
}
}
</script>
вот часть учебника, где он добавляет функцию «непрочитанные»
Ссылка на учебник
Время: - 7: 56
Я знаю, что это не те вопросы, которые следует здесь задавать, но мне отчаянно нужна помощь
Я перепробовал все, что было в моих силах
Пожалуйста, бросьте все, что, по вашему мнению, может мне помочь
-Спасибо