當前位置: 首頁>>代碼示例>>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;未經允許,請勿轉載。