laravel-在数组上调用成员函数map()

吉列努斯

我试图根据我的消息表fromContact关系在联系人列表上创建一个数组

    $messages = Message::where('offer_id', $id)->get();
    $contacts = array();
    foreach($messages as $message){
      $contacts[] = $message->fromContact;
    }

接下来,我尝试使用$ unreadIds创建联系人地图,该$ 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()",

也许有人知道该如何解决?

马库斯

使用laravel helper收集数组,然后使用map。

$collection = collect($contacts);

$collection->map(function($contact) use ($unreadIds) {
    $contactUnread = $unreadIds->where('sender_id', $contact->id)->first();
    $contact->unread = $contactUnread ? $contactUnread->messages_count : 0;
    return $contact;
});

https://laravel.com/docs/5.6/collections

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在数组laravel上调用成员函数save()

Laravel在数组错误上调用成员函数toArray()

在数组 laravel 5.4 上调用成员函数 first()

Laravel Dusk-在数组上调用成员函数click()

Laravel 5.8:在数组上调用成员函数 slice()

Laravel,jQuery文件上传错误-“在数组上调用成员函数store()”

在laravel中的数组上调用成员函数links()

在Laravel中的数组上调用成员函数paginate()

Laravel在null上调用成员函数

在空Laravel上调用成员函数save()

laravel:在null上调用成员函数delete()

在空[LARAVEL]上调用成员函数update()

在 null (Laravel) 上调用成员函数 getRealPath()

在浮动LARAVEL上调用成员函数addEagerConstraints()

在null上调用成员函数getBag()-Laravel

在空Laravel上调用成员函数delete()

Laravel,在 null 上调用成员函数 sync()

Laravel 在 null 上调用成员函数 validate()

从3.1.54更新到3.2.3后,在“ laravel Backpack crud”中的数组上调用成员函数count()

错误:在数组上调用成员函数

在数组上调用成员函数move()

在数组上调用成员函数failure()

Laravel:在文件中的 null 上调用成员函数 store()

Laravel-错误:在null上调用成员函数fullName()

使用Socialite在laravel中的null上调用成员函数create()

在字符串 laravel 5.8 上调用成员函数 all()

在laravel中的字符串上调用成员函数format()

laravel 5.2 | 上传文件-在null上调用成员函数getClientOriginalName()

在非对象Laravel 4.2上调用成员函数where()