/** * @test */ public function testLaravelTransformer() { $selectQuery = new SelectQueryParameters(); $selectQuery->where((new WhereParameter('foo', Operator::EQ, 'bar'))->or((new WhereParameter('bar', Operator::LT, 15))->and(new WhereParameter('cat', Operator::NEQ, 'catlab')))); $builder = $this->getQueryBuilder(); SelectQueryTransformer::toLaravel($builder, $selectQuery); $this->assertEquals('select * from "table" where "foo" = ? or ("bar" < ? and ("cat" != ?))', $builder->toSql()); }
/** * @param $model * @param $resourceDefinition * @param Context $context * @param int $records * @return mixed */ public function filterAndGet($model, $resourceDefinition, Context $context, $records = 10) { $filter = $this->resourceTransformer->getFilters(Request::query(), $resourceDefinition, $context, $records); // Translate parameters to larevel query SelectQueryTransformer::toLaravel($model, $filter); $models = $model->get(); if ($filter->isReverse()) { $models = $models->reverse(); } return $models; }