/** * Get 'real' fieldname. * * This will pass the Field through the alias resolver. * * @param string $name * * @throws UnknownFieldException When there is no field found * @throws \LogicException When there is no FieldSet configured * * @return string */ protected function getFieldName($name) { $fieldSet = $this->config->getFieldSet(); $name = $this->aliasResolver->resolveFieldName($fieldSet, $name); if (!$fieldSet->has($name)) { throw new UnknownFieldException($name); } return $name; }
public function it_resolves_a_field_with_multiple_resolvers(FieldSet $fieldSet, FieldAliasResolverInterface $resolver, FieldAliasResolverInterface $resolver2) { $this->beConstructedWith([$resolver, $resolver2]); $resolver->resolveFieldName($fieldSet, 'user')->willReturn('user_id'); $resolver->resolveFieldName($fieldSet, 'id')->willReturn('id'); $resolver->resolveFieldName($fieldSet, 'name')->willReturn(null); $resolver2->resolveFieldName($fieldSet, 'id')->willReturn('my_id'); $resolver2->resolveFieldName($fieldSet, 'name')->willReturn(null); $this->resolveFieldName($fieldSet, 'user')->shouldReturn('user_id'); $this->resolveFieldName($fieldSet, 'id')->shouldReturn('my_id'); $this->resolveFieldName($fieldSet, 'name')->shouldReturn('name'); }