App\Http\Controllers\FreeProductsController::index PHP Method

index() public method

Display a listing of the resource.
public index ( Illuminate\Http\Request $request ) : Response
$request Illuminate\Http\Request
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'));
    }