eav_field-2.x-dev/src/EavValueStorage.php

src/EavValueStorage.php
<?php

namespace Drupal\eav_field;

use Drupal\Core\Entity\Sql\SqlContentEntityStorage;
use Drupal\Core\Field\BaseFieldDefinition;
use Drupal\Core\Field\FieldStorageDefinitionInterface;
use Drupal\eav_field\Entity\EavValue;

class EavValueStorage extends SqlContentEntityStorage {

  /**
   * {@inheritDoc}
   */
  public function loadMultiple(array $ids = NULL): array {
    // Set unlimited cardinality to value fields in order to load all field values from database.
    // See \Drupal\Core\Entity\Sql\SqlContentEntityStorage::loadFromDedicatedTables()
    // See \Drupal\Tests\eav_field\Functional\EavFieldTest::_testAttributesValuesFormSubmit_MultiStringAndString()
    $field_definitions = $this->entityFieldManager->getFieldDefinitions('eav_value', 'eav_value'); /** @var BaseFieldDefinition[] $field_definitions */
    foreach (EavValue::getFieldTypes() as $field_type => $field_settings) {
      $field_definitions[$field_type . '_value']->getFieldStorageDefinition()->setCardinality(FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED);
    }

    return parent::loadMultiple($ids);
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc