public function implement(QueryBuilder $queryBuilder) { foreach ($this->getValue() as $key => $alias) { $key = Utils::parseKey($key); $queryBuilder->join($key, $alias); } }
protected function transform() { $v = new \stdClass(); foreach ($this->value as $key => $value) { $key = Utils::parseKey($key); $v->{$key} = $value; } return $v; }
private function parseKey($key) { if ($this->operator === 'INSTANCE OF') { if ($key === QueryBuilder::DEFAULT_ALIAS) { return $key; } } return Utils::parseKey($key); }
protected function transform() { $v = []; foreach ($this->value as $i => $field) { $as = null; if (is_array($field)) { $as = $field[1]; $field = $field[0]; } $field = Utils::parseKey($field); if ($as) { $field .= ' AS ' . $as; } $v[] = $field; } return $v; // return array_map('Jacoz\\Doctrine\\ORM\QueryBuilderFromRequest\\Utils\\Utils::parseKey', $this->value); }
public function testParseKey() { $this->assertEquals("{$this->alias}.id", Utils::parseKey('id')); $this->assertEquals('user.id', Utils::parseKey('user.id')); }