コード例 #1
0
 /**
  * Returns the feeds for a user
  *
  * @param \App\Eloquent\User $user
  * @param int $numberPerPage
  * @return \Illuminate\Pagination\LengthAwarePaginator|null
  */
 public function feeds($user = null, $numberPerPage = 3)
 {
     try {
         //Get CI super object
         $ci =& get_instance();
         //Calculate page
         $page = $ci->input->get('page') !== false ? $ci->input->get('page') : 1;
         //Count the posts
         $postsCount = $this->post->with(['user'])->whereHas('user', function ($query) use($user) {
             $query->whereIn('id', $user->friends()->lists('users.id')->merge([$user->id])->all());
         })->count();
         //No posts found
         if ($postsCount == 0) {
             //Return null
             return null;
         }
         //Limiting posts
         $limitsPosts = $this->post->with(['user'])->whereHas('user', function ($query) use($user) {
             $query->whereIn('id', $user->friends()->lists('users.id')->merge([$user->id])->all());
         })->skip($numberPerPage * ($page - 1))->take($numberPerPage)->orderBy('created_at', 'desc')->get();
         //No posts on this page
         if ($limitsPosts->count() == 0) {
             //Return null
             return null;
         }
         //Return paginator
         return new LengthAwarePaginator($limitsPosts, $postsCount, $numberPerPage, $page, ['path' => current_url()]);
     } catch (Exception $e) {
         //Unexpected error
         return null;
     }
 }