在 Drupal 8 中设置默认地址字段的值

Set values for default address fields in Drupal 8

我需要在创建节点时为默认地址字段(langcode、country_code、administrative_area、address_locality 等)设置值。我在由 Drupal\Core\Form\FormBase class 扩展的表单 class 的 submitForm 函数中使用了以下代码。但它对我不起作用。

$venueNode = Node::create([
    'type'          => 'venue',
    'title'         => 'Venue',
    'field_address' => [
        'country_code'        => 'US',
        'address_line1'       => '1098 Alta Ave',
        'locality'            => 'Mountain View',
        'administrative_area' => 'US-CA',
        'postal_code'         => '94043',
    ],
]);

$venueNode->save();

我在这里犯了一个错误。 field_address 应该有一个 0 索引。因此代码应该如下所示。

$venueNode = Node::create([
    'type'          => 'venue',
    'title'         => 'Venue',
    'field_address' => [
        0 => [
            'country_code'        => 'US',
            'address_line1'       => '1098 Alta Ave',
            'locality'            => 'Mountain View',
            'administrative_area' => 'US-CA',
            'postal_code'         => '94043',
        ],
    ],
]);

$venueNode->save();