contacts_events-8.x-1.x-dev/modules/contacts_events_segments/src/Form/SegmentForm.php
modules/contacts_events_segments/src/Form/SegmentForm.php
<?php
namespace Drupal\contacts_events_segments\Form;
use Drupal\Core\Entity\ContentEntityForm;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Routing\RouteMatchInterface;
/**
* Form controller for the event segment entity edit forms.
*/
class SegmentForm extends ContentEntityForm {
/**
* {@inheritdoc}
*/
public function getEntityFromRouteMatch(RouteMatchInterface $route_match, $entity_type_id) {
/** @var \Drupal\contacts_events_segments\Entity\SegmentInterface $entity */
$entity = parent::getEntityFromRouteMatch($route_match, $entity_type_id);
if ($entity->isNew() && $entity->get('event')->isEmpty()) {
$entity->set('event', $route_match->getRawParameter('contacts_event'));
}
return $entity;
}
/**
* {@inheritdoc}
*/
public function save(array $form, FormStateInterface $form_state) {
/** @var \Drupal\contacts_events_segments\Entity\SegmentInterface $entity */
$entity = $this->getEntity();
$result = $entity->save();
$message_arguments = [
'%event' => $entity->getEvent()->label(),
'%label' => $entity->label(),
];
if ($result == SAVED_NEW) {
$this->messenger()->addStatus($this->t('%label for %event has been created.', $message_arguments));
}
else {
$this->messenger()->addStatus($this->t('%label for %event has been updated.', $message_arguments));
}
$form_state->setRedirect('entity.contacts_event_segment.collection', [
'contacts_event' => $entity->getEventId(),
]);
}
}
