/** * @param Request $request * @param int $itemsPage * @return mixed */ public function findAllPaginate(Request $request, $itemsPage = 30) { $key = sprintf('variation_paginate_%s_%s', $itemsPage, $request->getRequestUri()); $queryParser = ParserRequestFactory::createParser($request, $this->getModel(), $query); $queryBuilder = $queryParser->parser(); return $this->cacheQueryBuilder($key, $queryBuilder, 'paginate', $itemsPage); }
private function manageRequest($requestProvider) { $request = new Request(); foreach ($requestProvider as $key => $value) { $request->merge([$key => $value]); } $arrayFields = $this->getFields(); $QueryParser = ParserRequestFactory::createParser($request, $this->model); $reflection = new \ReflectionClass($QueryParser); $reflectionProperty = $reflection->getProperty('columnNames'); $reflectionProperty->setAccessible(true); $reflectionProperty->setValue($QueryParser, $arrayFields); $queryBuilder = $QueryParser->parser(); return $queryBuilder->toSql(); }
/** * @param Request $request * @param int $itemsPage * @return mixed */ public function findAllActivesPaginate(Request $request, $itemsPage = 30) { $key = sprintf('product_paginate_%s_%s', $itemsPage, $request->getRequestUri()); $fields = ["{$this->tableProduct}.*"]; $query = $this->baseQuery(); $query->select($fields); $query->where("{$this->tableProduct}.status", 1); $query->groupBy("{$this->tableProduct}.id"); $queryParser = ParserRequestFactory::createParser($request, $this->getModel(), $query); $queryParser->addTables(['product_sku', 'category']); $queryBuilder = $queryParser->parser(); return $this->cacheQueryBuilder($key, $queryBuilder, 'paginate', $itemsPage); }