function WorkspaceForm::save

Same name and namespace in other branches
  1. 9 core/modules/workspaces/src/Form/WorkspaceForm.php \Drupal\workspaces\Form\WorkspaceForm::save()
  2. 8.9.x core/modules/workspaces/src/Form/WorkspaceForm.php \Drupal\workspaces\Form\WorkspaceForm::save()
  3. 10 core/modules/workspaces/src/Form/WorkspaceForm.php \Drupal\workspaces\Form\WorkspaceForm::save()

Overrides EntityForm::save

File

core/modules/workspaces/src/Form/WorkspaceForm.php, line 122

Class

WorkspaceForm
Form controller for the workspace edit forms.

Namespace

Drupal\workspaces\Form

Code

public function save(array $form, FormStateInterface $form_state) {
    $workspace = $this->entity;
    $workspace->setNewRevision(TRUE);
    $status = $workspace->save();
    $info = [
        '%info' => $workspace->label(),
    ];
    $context = [
        '@type' => $workspace->bundle(),
        '%info' => $workspace->label(),
    ];
    $logger = $this->logger('workspaces');
    if ($status == SAVED_UPDATED) {
        $logger->notice('@type: updated %info.', $context);
        $this->messenger()
            ->addMessage($this->t('Workspace %info has been updated.', $info));
    }
    else {
        $logger->notice('@type: added %info.', $context);
        $this->messenger()
            ->addMessage($this->t('Workspace %info has been created.', $info));
    }
    if ($workspace->id()) {
        $form_state->setValue('id', $workspace->id());
        $form_state->set('id', $workspace->id());
        $collection_url = $workspace->toUrl('collection');
        $redirect = $collection_url->access() ? $collection_url : Url::fromRoute('<front>');
        $form_state->setRedirectUrl($redirect);
    }
    else {
        $this->messenger()
            ->addError($this->t('The workspace could not be saved.'));
        $form_state->setRebuild();
    }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.