当前位置: 首页>>代码示例>>PHP>>正文


PHP ExecutionContextInterface::getConstraint方法代码示例

本文整理汇总了PHP中Symfony\Component\Validator\Context\ExecutionContextInterface::getConstraint方法的典型用法代码示例。如果您正苦于以下问题:PHP ExecutionContextInterface::getConstraint方法的具体用法?PHP ExecutionContextInterface::getConstraint怎么用?PHP ExecutionContextInterface::getConstraint使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Symfony\Component\Validator\Context\ExecutionContextInterface的用法示例。


在下文中一共展示了ExecutionContextInterface::getConstraint方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: validate

 /**
  * {@inheritdoc}
  */
 public function validate($value, $constraints = null, $groups = null)
 {
     $groups = $groups ? $this->normalizeGroups($groups) : $this->defaultGroups;
     $previousValue = $this->context->getValue();
     $previousObject = $this->context->getObject();
     $previousMetadata = $this->context->getMetadata();
     $previousPath = $this->context->getPropertyPath();
     $previousGroup = $this->context->getGroup();
     $previousConstraint = null;
     if ($this->context instanceof ExecutionContext || method_exists($this->context, 'getConstraint')) {
         $previousConstraint = $this->context->getConstraint();
     }
     // If explicit constraints are passed, validate the value against
     // those constraints
     if (null !== $constraints) {
         // You can pass a single constraint or an array of constraints
         // Make sure to deal with an array in the rest of the code
         if (!is_array($constraints)) {
             $constraints = array($constraints);
         }
         $metadata = new GenericMetadata();
         $metadata->addConstraints($constraints);
         $this->validateGenericNode($value, null, is_object($value) ? spl_object_hash($value) : null, $metadata, $this->defaultPropertyPath, $groups, null, TraversalStrategy::IMPLICIT, $this->context);
         $this->context->setNode($previousValue, $previousObject, $previousMetadata, $previousPath);
         $this->context->setGroup($previousGroup);
         if (null !== $previousConstraint) {
             $this->context->setConstraint($previousConstraint);
         }
         return $this;
     }
     // If an object is passed without explicit constraints, validate that
     // object against the constraints defined for the object's class
     if (is_object($value)) {
         $this->validateObject($value, $this->defaultPropertyPath, $groups, TraversalStrategy::IMPLICIT, $this->context);
         $this->context->setNode($previousValue, $previousObject, $previousMetadata, $previousPath);
         $this->context->setGroup($previousGroup);
         return $this;
     }
     // If an array is passed without explicit constraints, validate each
     // object in the array
     if (is_array($value)) {
         $this->validateEachObjectIn($value, $this->defaultPropertyPath, $groups, $this->context);
         $this->context->setNode($previousValue, $previousObject, $previousMetadata, $previousPath);
         $this->context->setGroup($previousGroup);
         return $this;
     }
     throw new RuntimeException(sprintf('Cannot validate values of type "%s" automatically. Please ' . 'provide a constraint.', gettype($value)));
 }
开发者ID:symfony,项目名称:validator,代码行数:51,代码来源:RecursiveContextualValidator.php


注:本文中的Symfony\Component\Validator\Context\ExecutionContextInterface::getConstraint方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。