当前位置: 首页>>代码示例>>PHP>>正文


PHP FieldStorageConfig::setCardinality方法代码示例

本文整理汇总了PHP中Drupal\field\Entity\FieldStorageConfig::setCardinality方法的典型用法代码示例。如果您正苦于以下问题:PHP FieldStorageConfig::setCardinality方法的具体用法?PHP FieldStorageConfig::setCardinality怎么用?PHP FieldStorageConfig::setCardinality使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Drupal\field\Entity\FieldStorageConfig的用法示例。


在下文中一共展示了FieldStorageConfig::setCardinality方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: testWidget

  /**
   * Tests widget's hidden input type.
   */
  function testWidget() {
    $formUrl = 'product/' . $this->product->id() . '/edit';
    // Create the first store. Since the field is required, the widget
    // should be a hidden element.
    $this->createStores(1);
    $storeId = $this->stores[0]->id();
    $this->drupalGet($formUrl);
    $this->assertFieldByXpath('//input[@type="hidden" and @name="stores[target_id][value]" and @value="' . $storeId .'"]', NULL, 'Stores field is displayed as a hidden element.');

    // Create another store. The widget should now be a set of checkboxes.
    $this->createStores(1);
    $storeIds = array_map(function ($store) {
      return $store->id();
    }, $this->stores);
    $this->drupalGet($formUrl);
    $this->assertTrue((bool) $this->xpath('//input[@type="checkbox" and starts-with(@name,"stores")]'), 'Stores field is displayed as a checkboxes element.');
    $this->assertNoFieldChecked('edit-stores-target-id-value-1');
    $this->assertNoFieldChecked('edit-stores-target-id-value-2');
    // Check store 1.
    $edit['stores[target_id][value][' . $storeIds[0] .']'] = $storeIds[0];
    $edit['stores[target_id][value][' . $storeIds[1] .']'] = FALSE;
    $this->drupalPostForm(NULL, $edit, t('Save and keep published'));
    $this->assertResponse(200);
    \Drupal::entityManager()->getStorage('commerce_product')->resetCache();
    $this->product = Product::load($this->product->id());
    $this->assertFieldValues($this->product->getStoreIds(), [$storeIds[0]], 'The correct store has been set on the product.');
    $this->drupalGet($formUrl);
    $this->assertFieldChecked('edit-stores-target-id-value-' . $storeIds[0]);
    $this->assertNoFieldChecked('edit-stores-target-id-value-' . $storeIds[1]);

    // Reduce the cardinality to 1. Checkboxes should now be radios.
    $this->referenceField->setCardinality(1)->save();
    $this->drupalGet($formUrl);
    $this->assertTrue((bool) $this->xpath('//input[@type="radio" and @name="stores[target_id][value]"]'), 'Stores field is displayed as a radio element.');
    $this->assertFieldChecked('edit-stores-target-id-value-' . $storeIds[0], 'Radio field for store ' . $storeIds[0] . ' is checked.');
    $this->assertNoFieldChecked('edit-stores-target-id-value-' . $storeIds[1], 'Radio field for store ' . $storeIds[1] . ' is unchecked.');

    // Create the final store. The widget should now be an autocomplete field.
    $this->createStores(1);
    $storeLabels = array_map(function ($store) {
      return $store->label() . ' (' . $store->id() . ')';
    }, $this->stores);
    $this->referenceField->setCardinality(FieldStorageConfig::CARDINALITY_UNLIMITED)->save();
    $this->drupalGet($formUrl);
    $this->assertTrue((bool) $this->xpath('//input[@id="edit-stores-target-id-value" and starts-with(@class, "form-autocomplete")]'), 'Stores field is displayed as an autocomplete element.');
    $this->assertFieldByName('stores[target_id][value]', $storeLabels[0]);
    // Reference both stores 1 and 2.
    $edit = [];
    $edit['stores[target_id][value]'] = $storeLabels[0] . ', ' . $storeLabels[1];
    $this->drupalPostForm(NULL, $edit, t('Save and keep published'));
    $this->assertResponse(200);
    \Drupal::entityManager()->getStorage('commerce_product')->resetCache();
    $this->product = Product::load($this->product->id());
    $this->assertFieldValues($this->product->getStoreIds(), [$storeIds[0], $storeIds[1]], 'The correct stores have been set on the product.');
    $this->drupalGet($formUrl);
    $this->assertFieldByName('stores[target_id][value]', $storeLabels[0] . ', ' . $storeLabels[1]);
  }
开发者ID:housineali,项目名称:drpl8_dv,代码行数:60,代码来源:EntitySelectWidgetTest.php


注:本文中的Drupal\field\Entity\FieldStorageConfig::setCardinality方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。