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


PHP FormStateInterface::setValueForElement方法代码示例

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


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

示例1: validateName

 /**
  * Form element validation handler for 'name' in form_test_validate_form().
  */
 public function validateName(&$element, FormStateInterface $form_state)
 {
     $triggered = FALSE;
     if ($form_state->getValue('name') == 'element_validate') {
         // Alter the form element.
         $element['#value'] = '#value changed by #element_validate';
         // Alter the submitted value in $form_state.
         $form_state->setValueForElement($element, 'value changed by setValueForElement() in #element_validate');
         $triggered = TRUE;
     }
     if ($form_state->getValue('name') == 'element_validate_access') {
         $form_state->set('form_test_name', $form_state->getValue('name'));
         // Alter the form element.
         $element['#access'] = FALSE;
         $triggered = TRUE;
     } elseif ($form_state->has('form_test_name')) {
         // To simplify this test, just take over the element's value into $form_state.
         $form_state->setValueForElement($element, $form_state->get('form_test_name'));
         $triggered = TRUE;
     }
     if ($triggered) {
         // Output the element's value from $form_state.
         drupal_set_message(t('@label value: @value', array('@label' => $element['#title'], '@value' => $form_state->getValue('name'))));
         // Trigger a form validation error to see our changes.
         $form_state->setErrorByName('');
     }
 }
开发者ID:nstielau,项目名称:drops-8,代码行数:30,代码来源:Callbacks.php

示例2: validateForm

 /**
  * {@inheritdoc}
  */
 public function validateForm(array &$form, FormStateInterface $form_state)
 {
     if ($form_state->getValue('name') == 'validate') {
         // Alter the form element.
         $form['name']['#value'] = '#value changed by #validate';
         // Alter the submitted value in $form_state.
         $form_state->setValueForElement($form['name'], 'value changed by $form_state->setValueForElement() in #validate');
         // Output the element's value from $form_state.
         drupal_set_message(t('@label value: @value', array('@label' => $form['name']['#title'], '@value' => $form_state->getValue('name'))));
         // Trigger a form validation error to see our changes.
         $form_state->setErrorByName('');
     }
 }
开发者ID:anyforsoft,项目名称:csua_d8,代码行数:16,代码来源:FormTestValidateForm.php

示例3: validateMatchedPath

 /**
  * Form element validation handler for matched_path elements.
  *
  * Note that #maxlength is validated by _form_validate() already.
  *
  * This checks that the submitted value matches an active route.
  */
 public static function validateMatchedPath(&$element, FormStateInterface $form_state, &$complete_form)
 {
     if (!empty($element['#value']) && ($element['#validate_path'] || $element['#convert_path'] != self::CONVERT_NONE)) {
         /** @var \Drupal\Core\Url $url */
         if ($url = \Drupal::service('path.validator')->getUrlIfValid($element['#value'])) {
             if ($url->isExternal()) {
                 $form_state->setError($element, t('You cannot use an external URL, please enter a relative path.'));
                 return;
             }
             if ($element['#convert_path'] == self::CONVERT_NONE) {
                 // Url is valid, no conversion required.
                 return;
             }
             // We do the value conversion here whilst the Url object is in scope
             // after validation has occurred.
             if ($element['#convert_path'] == self::CONVERT_ROUTE) {
                 $form_state->setValueForElement($element, array('route_name' => $url->getRouteName(), 'route_parameters' => $url->getRouteParameters()));
                 return;
             } elseif ($element['#convert_path'] == self::CONVERT_URL) {
                 $form_state->setValueForElement($element, $url);
                 return;
             }
         }
         $form_state->setError($element, t('This path does not exist or you do not have permission to link to %path.', array('%path' => $element['#value'])));
     }
 }
开发者ID:ddrozdik,项目名称:dmaps,代码行数:33,代码来源:PathElement.php

示例4: defaultValuesFormSubmit

 /**
  * {@inheritdoc}
  */
 public function defaultValuesFormSubmit(array $element, array &$form, FormStateInterface $form_state)
 {
     if ($form_state->getValue(['default_value_input', 'default_date_type']) || $form_state->getValue(['default_value_input', 'default_end_date_type'])) {
         if ($form_state->getValue(['default_value_input', 'default_date_type']) == static::DEFAULT_VALUE_NOW) {
             $form_state->setValueForElement($element['default_date'], static::DEFAULT_VALUE_NOW);
         }
         if ($form_state->getValue(['default_value_input', 'default_end_date_type']) == static::DEFAULT_VALUE_NOW) {
             $form_state->setValueForElement($element['default_end_date'], static::DEFAULT_VALUE_NOW);
         }
         return [$form_state->getValue('default_value_input')];
     }
     return [];
 }
开发者ID:eigentor,项目名称:tommiblog,代码行数:16,代码来源:DateRangeFieldItemList.php

示例5: validateForm

 /**
  * Implements \Drupal\Core\Form\FormInterface::validateForm().
  */
 public function validateForm(array &$form, FormStateInterface $form_state)
 {
     $routing_path = $form_state->getValue('routing_path');
     if ($routing_path) {
         $form_state->setValueForElement($form['routing']['routing_path'], $routing_path);
     } else {
         $form_state->setValueForElement($form['routing']['routing_path'], '/headless');
     }
     if ($routing_path[0] == '/') {
         $form_state->setErrorByName('routing_path', $this->t("The path '%path' cannot start with a slash.", array('%path' => $routing_path)));
     }
     if (!UrlHelper::isValid($routing_path)) {
         $form_state->setErrorByName('routing_path', $this->t("The path '%path' is invalid or you do not have access to it.", array('%path' => $routing_path)));
     }
 }
开发者ID:nuxy,项目名称:headless,代码行数:18,代码来源:HeadlessConfigForm.php

示例6: clearFormValues

 /**
  * Clear values from upload form element.
  *
  * @param array $element
  *   Upload form element.
  * @param \Drupal\Core\Form\FormStateInterface $form_state
  *   Form state object.
  */
 protected function clearFormValues(array &$element, FormStateInterface $form_state)
 {
     // We propagated entities to the other parts of the system. We can now remove
     // them from our values.
     $form_state->setValueForElement($element['upload']['fids'], '');
     NestedArray::setValue($form_state->getUserInput(), $element['upload']['fids']['#parents'], '');
 }
开发者ID:DrupalTV,项目名称:DrupalTV,代码行数:15,代码来源:Upload.php

示例7: testSetValueForElement

 /**
  * @covers ::setValueForElement
  */
 public function testSetValueForElement()
 {
     $element = ['#type' => 'foo'];
     $value = 'BAR';
     $this->decoratedFormState->setValueForElement($element, $value)->shouldBeCalled();
     $this->assertSame($this->formStateDecoratorBase, $this->formStateDecoratorBase->setValueForElement($element, $value));
 }
开发者ID:eigentor,项目名称:tommiblog,代码行数:10,代码来源:FormStateDecoratorBaseTest.php

示例8: validateColor

 /**
  * Form element validation handler for #type 'color'.
  */
 public static function validateColor(&$element, FormStateInterface $form_state, &$complete_form)
 {
     $value = trim($element['#value']);
     // Default to black if no value is given.
     // @see http://www.w3.org/TR/html5/number-state.html#color-state
     if ($value === '') {
         $form_state->setValueForElement($element, '#000000');
     } else {
         // Try to parse the value and normalize it.
         try {
             $form_state->setValueForElement($element, ColorUtility::rgbToHex(ColorUtility::hexToRgb($value)));
         } catch (\InvalidArgumentException $e) {
             $form_state->setError($element, t('%name must be a valid color.', array('%name' => empty($element['#title']) ? $element['#parents'][0] : $element['#title'])));
         }
     }
 }
开发者ID:papillon-cendre,项目名称:d8,代码行数:19,代码来源:Color.php

示例9: validateEmail

 /**
  * Form element validation handler for #type 'email'.
  *
  * Note that #maxlength and #required is validated by _form_validate() already.
  */
 public static function validateEmail(&$element, FormStateInterface $form_state, &$complete_form)
 {
     $value = trim($element['#value']);
     $form_state->setValueForElement($element, $value);
     if ($value !== '' && !valid_email_address($value)) {
         $form_state->setError($element, t('The email address %mail is not valid.', array('%mail' => $value)));
     }
 }
开发者ID:davidsoloman,项目名称:drupalconsole.com,代码行数:13,代码来源:Email.php

示例10: validateUrl

 /**
  * Form element validation handler for #type 'url'.
  *
  * Note that #maxlength and #required is validated by _form_validate() already.
  */
 public static function validateUrl(&$element, FormStateInterface $form_state, &$complete_form)
 {
     $value = trim($element['#value']);
     $form_state->setValueForElement($element, $value);
     if ($value !== '' && !UrlHelper::isValid($value, TRUE)) {
         $form_state->setError($element, t('The URL %url is not valid.', array('%url' => $value)));
     }
 }
开发者ID:nsp15,项目名称:Drupal8,代码行数:13,代码来源:Url.php

示例11: multipleValidate

 /**
  * Element validation helper.
  */
 public static function multipleValidate($element, FormStateInterface $form_state)
 {
     $values = array_map('trim', explode(',', $element['#value']));
     $items = array();
     foreach ($values as $value) {
         $items[] = array('value' => $value);
     }
     $form_state->setValueForElement($element, $items);
 }
开发者ID:ddrozdik,项目名称:dmaps,代码行数:12,代码来源:TestFieldWidgetMultiple.php

示例12: validatePasswordConfirm

 /**
  * Validates a password_confirm element.
  */
 public static function validatePasswordConfirm(&$element, FormStateInterface $form_state, &$complete_form)
 {
     $pass1 = trim($element['pass1']['#value']);
     $pass2 = trim($element['pass2']['#value']);
     if (!empty($pass1) || !empty($pass2)) {
         if (strcmp($pass1, $pass2)) {
             $form_state->setError($element, t('The specified passwords do not match.'));
         }
     } elseif ($element['#required'] && $form_state->getUserInput()) {
         $form_state->setError($element, t('Password field is required.'));
     }
     // Password field must be converted from a two-element array into a single
     // string regardless of validation results.
     $form_state->setValueForElement($element['pass1'], NULL);
     $form_state->setValueForElement($element['pass2'], NULL);
     $form_state->setValueForElement($element, $pass1);
     return $element;
 }
开发者ID:nsp15,项目名称:Drupal8,代码行数:21,代码来源:PasswordConfirm.php

示例13: validateSelectorUri

 /**
  * Validation handler for the selection element.
  */
 public function validateSelectorUri($element, FormStateInterface $form_state, $form)
 {
     if (!empty($element['#value'])) {
         if (file_exists($file_path = $this->configuration['path'] . '/' . $element['#value'])) {
             $form_state->setValueForElement($element, $file_path);
         } else {
             $form_state->setErrorByName(implode('][', $element['#parents']), $this->t('The selected file does not exist.'));
         }
     }
 }
开发者ID:andrewl,项目名称:andrewlnet,代码行数:13,代码来源:Dropdown.php

示例14: validatePath

 /**
  * {@inheritdoc}
  */
 public function validatePath(&$element, FormStateInterface $form_state)
 {
     // Ensure the path has a leading slash.
     $value = '/' . trim($element['#value'], '/');
     $form_state->setValueForElement($element, $value);
     // Ensure each path is unique.
     $path = $this->entityQuery->get('page')->condition('path', $value)->condition('id', $form_state->getValue('id'), '<>')->execute();
     if ($path) {
         $form_state->setErrorByName('path', $this->t('The page path must be unique.'));
     }
 }
开发者ID:neeravbm,项目名称:unify-d8,代码行数:14,代码来源:PageFormBase.php

示例15: validate

 /**
  * Validate the color text field.
  */
 public function validate($element, FormStateInterface $form_state)
 {
     $value = $element['#value'];
     if (strlen($value) == 0) {
         $form_state->setValueForElement($element, '');
         return;
     }
     if (!preg_match('/^#([a-f0-9]{6})$/iD', strtolower($value))) {
         $form_state->setError($element, t("Color must be a 6-digit hexadecimal value, suitable for CSS."));
     }
 }
开发者ID:seongbae,项目名称:drumo-distribution,代码行数:14,代码来源:TextWidget.php


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