RegistrationGroupViewsData.php in RNG - Events and Registrations 8
File
src/Views/RegistrationGroupViewsData.php
View source
<?php
namespace Drupal\rng\Views;
use Drupal\views\EntityViewsData;
class RegistrationGroupViewsData extends EntityViewsData {
public function getViewsData() {
$data = parent::getViewsData();
$registration_definition = \Drupal::entityTypeManager()
->getDefinition('registration');
$group_definition = \Drupal::entityTypeManager()
->getDefinition('registration_group');
$t_args = [
'@origin_label' => $group_definition
->getLabel(),
'@target_label' => $registration_definition
->getLabel(),
];
$data['registration_group_field_data']['event__target_id']['filter']['allow empty'] = TRUE;
$psuedo_field = 'rng_registration_group__registration';
$data['registration_group_field_data'][$psuedo_field]['relationship'] = [
'title' => t('@target_labels', $t_args),
'label' => t('@target_labels', $t_args),
'group' => $group_definition
->getLabel(),
'help' => t('References to the @target_labels of a @origin_label.', $t_args),
'entity_type' => $registration_definition
->id(),
'id' => 'entity_reverse',
'base' => $registration_definition
->getDataTable() ?: $registration_definition
->getBaseTable(),
'base field' => $registration_definition
->getKey('id'),
'field_name' => 'groups',
'field table' => 'registration__groups',
'field field' => 'groups_target_id',
'relationship field' => $group_definition
->getKey('id'),
];
return $data;
}
}