Mercurial > hg > isophonics-drupal-site
comparison core/modules/field/src/Tests/EntityReference/EntityReferenceTestTrait.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children | 129ea1e6d783 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:4c8ae668cc8c |
---|---|
1 <?php | |
2 | |
3 namespace Drupal\field\Tests\EntityReference; | |
4 | |
5 use Drupal\field\Entity\FieldConfig; | |
6 use Drupal\field\Entity\FieldStorageConfig; | |
7 | |
8 /** | |
9 * Provides common functionality for the EntityReference test classes. | |
10 */ | |
11 trait EntityReferenceTestTrait { | |
12 | |
13 /** | |
14 * Creates a field of an entity reference field storage on the specified bundle. | |
15 * | |
16 * @param string $entity_type | |
17 * The type of entity the field will be attached to. | |
18 * @param string $bundle | |
19 * The bundle name of the entity the field will be attached to. | |
20 * @param string $field_name | |
21 * The name of the field; if it already exists, a new instance of the existing | |
22 * field will be created. | |
23 * @param string $field_label | |
24 * The label of the field. | |
25 * @param string $target_entity_type | |
26 * The type of the referenced entity. | |
27 * @param string $selection_handler | |
28 * The selection handler used by this field. | |
29 * @param array $selection_handler_settings | |
30 * An array of settings supported by the selection handler specified above. | |
31 * (e.g. 'target_bundles', 'sort', 'auto_create', etc). | |
32 * @param int $cardinality | |
33 * The cardinality of the field. | |
34 * | |
35 * @see \Drupal\Core\Entity\Plugin\EntityReferenceSelection\SelectionBase::buildConfigurationForm() | |
36 */ | |
37 protected function createEntityReferenceField($entity_type, $bundle, $field_name, $field_label, $target_entity_type, $selection_handler = 'default', $selection_handler_settings = [], $cardinality = 1) { | |
38 // Look for or add the specified field to the requested entity bundle. | |
39 if (!FieldStorageConfig::loadByName($entity_type, $field_name)) { | |
40 FieldStorageConfig::create([ | |
41 'field_name' => $field_name, | |
42 'type' => 'entity_reference', | |
43 'entity_type' => $entity_type, | |
44 'cardinality' => $cardinality, | |
45 'settings' => [ | |
46 'target_type' => $target_entity_type, | |
47 ], | |
48 ])->save(); | |
49 } | |
50 if (!FieldConfig::loadByName($entity_type, $bundle, $field_name)) { | |
51 FieldConfig::create([ | |
52 'field_name' => $field_name, | |
53 'entity_type' => $entity_type, | |
54 'bundle' => $bundle, | |
55 'label' => $field_label, | |
56 'settings' => [ | |
57 'handler' => $selection_handler, | |
58 'handler_settings' => $selection_handler_settings, | |
59 ], | |
60 ])->save(); | |
61 } | |
62 } | |
63 | |
64 } |