Я пытаюсь создать массив в моем списке контактов, основываясь на моей таблице сообщений fromContact
отношение:
$messages = Message::where('offer_id', $id)->get();
$contacts = array();
foreach($messages as $message){
$contacts[] = $message->fromContact;
}
далее Я пытаюсь создать карту для контакта, используя $ unreadIds, которые являются результатом другого запроса к таблице сообщений:
$contacts = $contacts->map(function($contact) use ($unreadIds) {
$contactUnread = $unreadIds->where('sender_id', $contact->id)->first();
$contact->unread = $contactUnread ? $contactUnread->messages_count : 0;
return $contact;
});
и это не работает ... У меня просто сообщение с ошибкой:
Call to a member function map() on array
и я понимаю, я не должен использовать map () для массива - поэтому я пробовал много способов преобразовать его в объект - все не удалось.
например
преобразование контактов в объект после цикла массива
$contacts = (object)$contacts;
выдает ошибку: "message": "Call to undefined method stdClass::map()",
Может, кто-нибудь знает, как это исправить?