だから私はこのノードを持っています:
object(Drupal\node\Entity\Node)[1862]
protected 'values' =>
array (size=17)
'vid' =>
array (size=1)
'x-default' => string '7' (length=1)
'langcode' =>
array (size=1)
'x-default' =>
array (size=1)
0 =>
array (size=1)
'value' => string 'en' (length=2)
... (more fields)
'field_image' =>
array (size=1)
'x-default' =>
array (size=1)
0 =>
array (size=5)
'target_id' => string '1' (length=1)
'alt' => string '' (length=0)
'title' => string '' (length=0)
'width' => string '150' (length=3)
'height' => string '120' (length=3)
これで、field_imageにはx-defaultといくつかの基本的な画像データを含む配列があります。画像を表示する、またはTwigテンプレート内に画像へのリンクを作成するにはどうすればよいですか?
Recoverable fatal error: Object of class Drupal\Core\Field\FieldItemList could not be converted to string
だから私はこれで試してみました: url(node.field_image.0.entity.uri.value)
しかし、それは私にこれを教えてくれます:Twig_Error_Runtime: An exception has been thrown during the rendering of a template ("Route "public://image.png" does not exist.")
FieldItemList
sを文字列表現に変換するTwigヘルパー関数がない場合は、プリプロセスフックで行う必要があると思います(見つけられません)
url()
ルートが欲しい。どうurl_from_path(node.field_image.0.entity.uri.value)
?
url_from_path()
これを生成するようだ:http://mywebsite.local/public%3A//image.png
それはURLエンコードしてURLに正確な値を追加しているように見えるので
url(node.field_image.0.entity.uri)
(関連する問題)と同じくらい簡単です