app\FreeProduct::getListWithPaginate PHP Method

getListWithPaginate() public static method

public static getListWithPaginate ( $paginator, $status = null, $fields = ['*'] )
    public static function getListWithPaginate($paginator = 0, $status = null, $fields = ['*'])
    {
        $query = self::select($fields);
        if ($status) {
            $query->ofStatus($status);
        }
        $freeproducts = $query->get();
        return $paginator ? new Paginator(self::getWithProducts($freeproducts), $freeproducts->count(), $paginator, Paginator::resolveCurrentPage(), ['path' => Paginator::resolveCurrentPath()]) : self::getWithProducts($freeproducts);
    }

Usage Example

コード例 #1
0
 /**
  * Display a listing of the resource.
  *
  * @return Response
  */
 public function index(Request $request)
 {
     $user = \Auth::user();
     $filter = $request->get('filter');
     if ($filter && $filter != '') {
         switch (strtolower($filter)) {
             case 'active':
                 $freeproducts = FreeProduct::getListWithPaginate(8, 1);
                 break;
             case 'inactive':
                 $freeproducts = FreeProduct::getListWithPaginate(8, 0);
                 break;
             case 'participations':
                 //$userholdings = FreeProductParticipant::where('user_id', $user->id)->select('freeproduct_id')->get()->toArray();
                 //$freeproducts=FreeProduct::whereIn('id', $userholdings)->with('orders')->paginate(8);
                 $freeproducts = FreeProduct::with('orders')->join('freeproduct_participants as p', function ($join) {
                     $join->on('freeproducts.id', '=', 'p.freeproduct_id')->where('p.user_id', '=', \Auth::user()->id);
                 })->select('freeproducts.*', 'p.status as status_holding')->paginate(8);
                 //dd($freeproducts->toSql());
                 break;
             default:
                 $freeproducts = FreeProduct::getListWithPaginate(8);
                 break;
         }
     } else {
         $freeproducts = FreeProduct::getListWithPaginate(8);
     }
     $panel = $this->panel;
     $route = route('freeproducts.search');
     return view('freeproducts.index', compact('panel', 'freeproducts', 'filter', 'route'));
 }