如何获取图像网址以在不带节点和带节点的情况下在我的树枝中显示它

问题描述 投票:0回答:1

我创建一个自定义表单,然后检索表中的字段,然后返回分支中的表,然后将分支的内容提取到放入节点的变量中。

它没有显示图像的来源,所以我想获取数据库中保存的网址。

``In my form`
    $form['image1'] = [
      '#type' => 'managed_file',
      '#title' => $this->t('Image 1'),
      '#upload_location' => 'public://user/image/', 
      '#required' => FALSE,
      '#upload_validators' => [
        'file_validate_extensions' => ['jpg jpeg png gif'], 
        'file_validate_size' => [5 * 1024 * 1024],
      ],
    ];


`then i put information in $array`
    $form_array = array(
      'img1' => $form_state->getValue('image1'),
    );

`I put my array in html`
    $build = [
      '#type' => 'html',
      '#theme' => 'theme_project',
      '#form_array' => $form_array,
    ];

`i put my html in variable`
    $html = \Drupal::service('renderer')->renderPlain($build);

`i put in node then create it`
    $node = Node::create([
      'type' => 'name_content', 
      'title' => $form_state->getValue('form_titre'),
      'field_image1' => $form_state->getValue('image1'),
    ]);
    $node->save();

`twig file`
<img src={{ form_array.img1 }} style="width:100%">  

我尝试了这个,但我没有工作

$file_url_generator=\Drupal::service('file_url_generator');
$image1 = $file_url_generator->generateAbsoluteString($form_state->getValue('field_image1'));
drupal drupal-8 drupal-views
1个回答
0
投票

如果您想从媒体实体中捕获的图像获取 URL,您可以使用上述预处理函数提取它,如下所示:

function mytheme_preprocess_node(&$variables) {
 
  /** @var \Drupal\node\NodeInterface $node */
  $node = $variables['node'];
 
  $image_field = $node->get('field_background_image');
  if (!$image_field->isEmpty()) {
    $uri = $image_field->entity->get('field_media_image')->entity->uri->value;
    $variables['background_image_url'] = file_create_url($uri);
  }
}

在节点模板中,您可以使用

显示它
{{ background_image_url }}
© www.soinside.com 2019 - 2024. All rights reserved.