it-swarm.com.de

Wie erhalte ich den Feldwert einer Medieneinheit in einem Zweig?

Manchmal ist es notwendig, den tatsächlichen Wert eines Feldes zu erhalten (nicht den formatierten/gerenderten), z. um einen Booleschen Wert auf true oder false zu überprüfen.

Wenn ich einen Feldwert eines Knotens oder Absatzes erhalten möchte twig Vorlagen ( node.html.twig / Absatz.html.twig ) Ich kann node.field_my_boolean.value Bzw. paragraph.field_my_boolean.value Verwenden.

Wie mache ich das in einem Medium twig Vorlage? Ich habe media.field_my_boolean.value Aber schon ausprobiert es funktioniert nicht.

3
Philipp Michael

Im Moment übergibt das Medienmodul sein Objekt nicht an Variablen wie Absätze und Node tut dies. Deshalb tut media.field_my_boolean.value Nichts.

Sie können dies in Ihrem Thema korrigieren, indem Sie theme_preprocess_media Implementieren, wodurch das Medienobjekt zu den Variablen hinzugefügt wird:

/**
 * Prepares variables for media templates.
 *
 * Default template: media.html.twig.
 *
 * @param array $variables
 *   An associative array containing:
 *   - media: An individual media for display.
 */
function mytheme_preprocess_media(&$variables) {
  $variables['media'] = $variables['elements']['#media'];
}

Sie können dann auf media. In Ihrer twig Vorlage) und allen damit verbundenen Feldern wie Absatz oder Knoten zugreifen.

4
Kevin

Sie können mit {{ content.field_my_boolean }} und wenn Sie den Rohwert ohne HTML-Markup möchten, verwenden Sie content.field_my_boolean.0

Beide geben den gerenderten Wert und nicht das tatsächliche wahr/falsch aus. Ich kann dies nicht verwenden, da es übersetzt ist (z. B. "wahr").

Verwenden Sie dann das |t funktionieren und dies tun

{% if content.field_my_boolean.0 == 'Wahr'|t %}
    // do something
{% elseif content.field_my_boolean.0 == 'Falsch'|t %}
    // do something
{% endif %}
1
No Sssweat