本文整理汇总了PHP中Drupal\Core\Form\FormStateInterface::isValidationComplete方法的典型用法代码示例。如果您正苦于以下问题:PHP FormStateInterface::isValidationComplete方法的具体用法?PHP FormStateInterface::isValidationComplete怎么用?PHP FormStateInterface::isValidationComplete使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Drupal\Core\Form\FormStateInterface
的用法示例。
在下文中一共展示了FormStateInterface::isValidationComplete方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: validateForm
/**
* {@inheritdoc}
*/
public function validateForm($form_id, &$form, FormStateInterface &$form_state)
{
// If this form is flagged to always validate, ensure that previous runs of
// validation are ignored.
if ($form_state->isValidationEnforced()) {
$form_state->setValidationComplete(FALSE);
}
// If this form has completed validation, do not validate again.
if ($form_state->isValidationComplete()) {
return;
}
// If the session token was set by self::prepareForm(), ensure that it
// matches the current user's session.
if (isset($form['#token'])) {
if (!$this->csrfToken->validate($form_state->getValue('form_token'), $form['#token'])) {
$url = $this->requestStack->getCurrentRequest()->getRequestUri();
// Setting this error will cause the form to fail validation.
$form_state->setErrorByName('form_token', $this->t('The form has become outdated. Copy any unsaved work in the form below and then <a href="@link">reload this page</a>.', array('@link' => $url)));
// Stop here and don't run any further validation handlers, because they
// could invoke non-safe operations which opens the door for CSRF
// vulnerabilities.
$this->finalizeValidation($form, $form_state, $form_id);
return;
}
}
// Recursively validate each form element.
$this->doValidateForm($form, $form_state, $form_id);
$this->finalizeValidation($form, $form_state, $form_id);
$this->handleErrorsWithLimitedValidation($form, $form_state, $form_id);
}
示例2: isValidationComplete
/**
* {@inheritdoc}
*/
public function isValidationComplete()
{
return $this->mainFormState->isValidationComplete();
}
示例3: validateForm
/**
* {@inheritdoc}
*/
public function validateForm($form_id, &$form, FormStateInterface &$form_state)
{
// If this form is flagged to always validate, ensure that previous runs of
// validation are ignored.
if ($form_state->isValidationEnforced()) {
$form_state->setValidationComplete(FALSE);
}
// If this form has completed validation, do not validate again.
if ($form_state->isValidationComplete()) {
return;
}
// If the session token was set by self::prepareForm(), ensure that it
// matches the current user's session. This is duplicate to code in
// FormBuilder::doBuildForm() but left to protect any custom form handling
// code.
if (isset($form['#token'])) {
if (!$this->csrfToken->validate($form_state->getValue('form_token'), $form['#token']) || $form_state->hasInvalidToken()) {
$this->setInvalidTokenError($form_state);
// Stop here and don't run any further validation handlers, because they
// could invoke non-safe operations which opens the door for CSRF
// vulnerabilities.
$this->finalizeValidation($form, $form_state, $form_id);
return;
}
}
// Recursively validate each form element.
$this->doValidateForm($form, $form_state, $form_id);
$this->finalizeValidation($form, $form_state, $form_id);
$this->handleErrorsWithLimitedValidation($form, $form_state, $form_id);
}
示例4: massageFormValues
/**
* {@inheritdoc}
*/
public function massageFormValues(array $values, array $form, FormStateInterface $form_state)
{
// Don't do entity saving when we have validation erors.
if (count($form_state->getErrors()) || !$form_state->isValidationComplete()) {
return $values;
}
$field_name = $this->fieldDefinition->getName();
$widget_state = static::getWidgetState($form['#parents'], $field_name, $form_state);
$element = NestedArray::getValue($form_state->getCompleteForm(), $widget_state['array_parents']);
foreach ($values as $delta => &$item) {
if (isset($widget_state['paragraphs'][$item['_original_delta']]['entity']) && $widget_state['paragraphs'][$item['_original_delta']]['mode'] != 'remove') {
$paragraphs_entity = $widget_state['paragraphs'][$item['_original_delta']]['entity'];
/** @var \Drupal\Core\Entity\Display\EntityFormDisplayInterface $display */
$display = $widget_state['paragraphs'][$item['_original_delta']]['display'];
$display->extractFormValues($paragraphs_entity, $element[$item['_original_delta']]['subform'], $form_state);
$display->validateFormValues($paragraphs_entity, $element[$item['_original_delta']]['subform'], $form_state);
$paragraphs_entity->setNewRevision(TRUE);
$paragraphs_entity->save();
$item['target_id'] = $paragraphs_entity->id();
$item['target_revision_id'] = $paragraphs_entity->getRevisionId();
} elseif ($widget_state['paragraphs'][$item['_original_delta']]['mode'] == 'remove' || $widget_state['paragraphs'][$item['_original_delta']]['mode'] == 'removed') {
$item['target_id'] = NULL;
$item['target_revision_id'] = NULL;
}
}
return $values;
}
示例5: massageFormValues
/**
* {@inheritdoc}
*/
public function massageFormValues(array $values, array $form, FormStateInterface $form_state)
{
// Don't do entity saving when we have validation erors.
if (count($form_state->getErrors()) || !$form_state->isValidationComplete()) {
return parent::massageFormValues($values, $form, $form_state);
}
foreach ($values as $value) {
if (isset($value['fids'][0]) && isset($value['cropinfo']) && $value['cropinfo']['changed']) {
$fid = $value['fids'][0];
$new_crop_info = array('fid' => $fid, 'x' => $value['cropinfo']['x'], 'y' => $value['cropinfo']['y'], 'width' => $value['cropinfo']['width'], 'height' => $value['cropinfo']['height']);
imagefield_crop_update_file_info($new_crop_info);
$source = File::load($fid);
if ($source) {
image_path_flush($source->getFileUri());
}
}
}
return parent::massageFormValues($values, $form, $form_state);
}
示例6: isValidationComplete
/**
* {@inheritdoc}
*/
public function isValidationComplete()
{
return $this->decoratedFormState->isValidationComplete();
}
示例7: testIsValidationComplete
/**
* @covers ::isValidationComplete
*
* @dataProvider providerSingleBooleanArgument
*
* @param bool $complete
*/
public function testIsValidationComplete($complete)
{
$this->decoratedFormState->isValidationComplete()->willReturn($complete)->shouldBeCalled();
$this->assertSame($complete, $this->formStateDecoratorBase->isValidationComplete());
}