コード例 #1
0
ファイル: PluralRead.php プロジェクト: torchline/frest
 /**
  * @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;
 }