Example #1
0
 public function brefJoin()
 {
     $paginator = ArticleJoin::select('id', 'user_id', 'created_at')->where('article_id', Input::get('article_id'))->with(['parts' => function ($query) {
         $query->orderBy('id', 'acs');
     }, 'user' => function ($query) {
         $query->select('id', 'username', 'avatar');
     }])->paginate((int) Input::get('per_page'));
     $article_joins = $paginator->getCollection();
     foreach ($article_joins as $article_join) {
         $user = $article_join->user;
         $parts = $article_join->parts;
         $article_join->username = $user->username;
         $article_join->avatar = $user->avatar;
         $text = '';
         $imgs = [];
         foreach ($parts as $part) {
             if ($part->type == 'text' && empty($text)) {
                 $text = $part->content;
             } else {
                 if ($part->type == 'url' && count($imgs) < 4) {
                     array_push($imgs, $part->content);
                 }
             }
         }
         $article_join->text = $text;
         $article_join->imgs = $imgs;
         unset($article_join->user);
         unset($article_join->parts);
     }
     return Response::json(['errCode' => 0, 'message' => '返回参与话题内容', 'article_joins' => $article_joins, 'total' => $paginator->getTotal()]);
 }