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.
Sie müssen verwenden
{!! $text !!}
Die Zeichenfolge wird bei Verwendung von {{ $text }}
automatisch umgeschaltet.
Für Laravel 5
{!!html_entity_decode($text)!!}
Über diesen link herausgefunden, siehe Antwort von RachidLaasri
Sie können dies versuchen:
{!! $text !!}
Sie sollten einen Blick darauf werfen: http://laravel.com/docs/5.0/upgrade#upgrade-5.0
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
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.
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.
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.
sie können mit Laravel 5 viele Wege gehen.
{!! $text !!}
{!! html_entity_decode($text) !!}
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.
es ist ein einfaches
{!! $text !!}
laravel kompiliert als dom-Element und {{$text}}
als String
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
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
Für diejenigen, die Tinymce und Markup innerhalb von Textfeldern verwenden:
{{ htmlspecialchars($text) }}
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
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.
Versuchen Sie das, das hat funktioniert
@ php echo $ text; @endphp