调用未定义的方法 Illuminate\Support\Collection

Call to undefined method Illuminate\Support\Collection

我在 运行 此代码时遇到问题:

//DashboardController

public function getStream()
{
      $user                 = Sentry::getUser();
      $userid               = $user->id;
      $convs                = TBMsg::getUserConversations($userid);
      $getNumOfParticipants = $convs->getNumOfParticipants();
      $participants         = $convs->getAllParticipants();
      $lastMessage          = $convs->getLastMessage();
      $senderId             = $lastMessage->getSender();
      $content              = $lastMessage->getContent();
      $status               = $lastMessage->getStatus();
      $posts                = Post::whereIn('user_id', function($query) {
      $query->select('follow_id')
            ->from('user_follows')
            ->where('user_id', '1');
        })->orWhere('user_id', '1')->get();

      return View::make('stream', array('getNumOfParticipants' => $getNumOfParticipants, 
                                        'participants'         => $participants, 
                                        'lastMessage'          => $lastMessage, 
                                        'senderId'             => $senderId, 
                                        'content'              => $content, 
                                        'status'               => $status
        ))->with('posts', $posts)->with('convs', $convs);
}

}

我收到此错误:调用未定义的方法 Illuminate\Support\Collection::getNumOfParticipants()

http://i.stack.imgur.com/9N3xU.png

$convs 是一个集合,因此您不能调用仅存在于单个模型上的方法。就像包的教程建议你必须迭代集合才能使用该函数。
From the how to:

foreach ( $convs as $conv ) {

        $getNumOfParticipants = $conv->getNumOfParticipants();
        $participants = $conv->getAllParticipants();

        /* $lastMessage Tzookb\TBMsg\Entities\Message */
        $lastMessage = $conv->getLastMessage();

        $senderId = $lastMessage->getSender();
        $content = $lastMessage->getContent();
        $status = $lastMessage->getStatus();
    }

->get() 替换为 ->first(),因为现在您基本上返回的是数组集合,但您需要它。

 $query->select('follow_id')
        ->from('user_follows')
        ->where('user_id', '1');
    })->orWhere('user_id', '1') // ->get() is removed
    ->first();