/** * @param $parameter * @param $value * @return bool * @throws FREST\Exception */ protected function isValidURLParameter($parameter, $value) { /** @noinspection PhpUndefinedClassInspection */ $isValid = parent::isValidURLParameter($parameter, $value); if (!$isValid) { // if not already determined to be valid $conditionSettings = $this->resource->getConditionSettings(); $aliasValues = NULL; $alias = self::getHandleAndValues($parameter, $aliasValues) ?: $parameter; if (!isset($alias) || isset($aliasValues) && count($aliasValues) != 1) { throw new FREST\Exception(FREST\Exception::InvalidField, $parameter); } if (isset($conditionSettings[$alias])) { /** @var Setting\Condition $conditionSetting */ $conditionSetting = $conditionSettings[$alias]; $fieldSetting = $this->resource->getFieldSettingForAlias($conditionSetting->getAlias()); if (!isset($fieldSetting)) { throw new FREST\Exception(FREST\Exception::Config, "No field setting found for condition '{$alias}' in resource {$this->resource->getName()}"); } $isValid = TRUE; } } return $isValid; }