web-dev-qa-db-ger.com

Laravel 5: HTML mit Blade anzeigen

Ich habe eine Zeichenfolge zu einer meiner Ansichten wie folgt zurückgegeben:

$text = '<p><strong>Lorem</strong> ipsum dolor <img src="images/test.jpg"></p>'

Ich versuche es mit Blade anzuzeigen:

{{$text}}

Die Ausgabe ist jedoch eine unformatierte Zeichenfolge anstelle von gerendertem HTML. Wie zeige ich HTML mit Blade in Laravel 5 an?

PS. PHP echo() zeigt den HTML-Code korrekt an.

185
lesssugar

Sie müssen verwenden

{!! $text !!}

Die Zeichenfolge wird bei Verwendung von {{ $text }} automatisch umgeschaltet.

455
terry low

Für Laravel 5

{!!html_entity_decode($text)!!}

Über diesen link herausgefunden, siehe Antwort von RachidLaasri

47
Praveen Dabral

Sie können dies versuchen:

{!! $text !!}

Sie sollten einen Blick darauf werfen: http://laravel.com/docs/5.0/upgrade#upgrade-5.0

34
rap-2-h

Benutzen Sie bitte

{!! $test !!} 

Nur im Falle von HTML dabei, wenn Sie Daten rendern, stechen usw. verwenden wollen

{{ $test }}

Dies liegt daran, wenn Ihre Blade-Datei kompiliert wird 

{{ $test }} wird während <?php echo e($test) ?> konvertiert 

{!! $test !!} wird in <?php echo $test ?> konvertiert

13
Shubham Bansal

Es geht auch anders. Wenn der Zweck von Objekten darin besteht, HTML zu rendern, können Sie einen \Illuminate\Contracts\Support\Htmlable-Vertrag mit der toHtml()-Methode implementieren.

Dann können Sie das Objekt wie folgt aus dem Blade rendern: {{ $someObject }} (Hinweis, {!! !!}-Syntax ist nicht erforderlich).

Auch wenn Sie die html -Eigenschaft zurückgeben möchten und wissen, dass es html ist, verwenden Sie die \Illuminate\Support\HtmlString-Klasse wie folgt:

public function getProductDescription()
{
    return new HtmlString($this->description);
}

und dann verwenden Sie es wie {{ $product->getProductDescription() }}.

Seien Sie natürlich verantwortlich, wenn Sie direktes html auf Seite rendern.

7
Damir Miladinov

Versuche dies. Es hat für mich funktioniert.

{{ html_entity_decode($text) }}

In der Laravel Blade-Vorlage wird {{}} HTML-Code entziehen. Wenn Sie HTML vom Controller in der Ansicht anzeigen möchten, decodieren Sie HTML vom String.

7
Mohammed Safeer

Sie können {!! $ text !!} zum Rendern von HTML-Code in Laravel

{!! $text !!}

Wenn du benutzt 

{{ $text }}

Es wird kein HTML-Code gerendert und als Zeichenfolge gedruckt.

4
PPL

sie können mit Laravel 5 viele Wege gehen.

{!! $text !!}

{!! html_entity_decode($text) !!}
3
Jignesh Joisar

Verwenden Sie {!! $text !!}, um Daten anzuzeigen, ohne sie zu umgehen. Stellen Sie sicher, dass Sie dies nicht mit Daten tun, die vom Benutzer stammen und nicht bereinigt wurden. 

2
Patrick Luy

es ist ein einfaches 

{!! $text !!}

laravel kompiliert als dom-Element und {{$text}} als String 

1

Dies funktioniert gut für Laravel 5.6

<?php echo "$text"; ?>

Auf andere Weise

{!! $text !!}

Es wird kein HTML-Code gerendert und als Zeichenfolge gedruckt.

Für weitere Informationen öffnen Sie den Link: - HTML mit Blade anzeigen

1
Udhav Sarvaiya

Wenn Sie der Datennutzung entgehen wollen 

{{ $html }}

Wenn Sie der Datennutzung nicht entgehen wollen 

{!! $html !!}

Aber bis Laravel-4 kannst du verwenden 

{{ HTML::link('/auth/logout', 'Sign Out', array('class' => 'btn btn-default btn-flat')) }}

Wenn kommt nach Laravel-5 

{!! HTML::link('/auth/logout', 'Sign Out', array('class' => 'btn btn-default btn-flat')) !!} 

Sie können dies auch mit der Funktion PHP tun

{{ html_entity_decode($data) }}

durchlaufen Sie das Dokument PHP für die Parameter dieser Funktion

html_entity_decode - php.net

1
Reiah Paul Sam

Für diejenigen, die Tinymce und Markup innerhalb von Textfeldern verwenden:

{{ htmlspecialchars($text) }}
0
Hung

Ich war dort und es war meine Schuld. Und sehr dummes.

wenn Sie die Dateinamenserweiterung .blade vergessen, versteht diese Datei Blade nicht, führt jedoch PHP-Code aus. Du solltest benutzen

/resources/views/filename.blade.php

anstatt

/resources/views/filename.php

hoffe das hilft jemandem

0
Ali Aydin

Sie können dies auf drei Arten tun, wenn Sie die Bedingung zuerst verwenden

{!! $text !!}

Der zweite Weg

<td class="nowrap">
@if( $order->status == '0' )
    <button class="btn btn-danger">Inactive</button>
@else
    <button class="btn btn-success">Active</button>
@endif
</td>

Der dritte und richtige Weg für den Einsatz des ternären Operators auf der Klinge

<td class="nowrap">
      {!! $order->status=='0' ? 
          '<button class="btn btn-danger">Inactive</button> : 
          '<button class="btn btn-success">Active</button> !!}
</td>

Ich hoffe, der dritte Weg ist perfekt für gebrauchte Dreifachbediener auf der Klinge.

0
Uzair

Versuchen Sie das, das hat funktioniert 
@ php echo $ text; @endphp

0
ShuBham GuPta