web-dev-qa-db-fra.com

Laravel 5 variable de session d'écho sortant contenant du html dans la lame

J'ai fait une redirection dans laravel:

return redirect('admin')->with($returnData);

$ returnData est une chaîne qui contient un bootstrap info div avec le résultat du contrôleur. Presque tout fonctionne, sauf lorsque la page se charge à nouveau, il affiche le html sur la page comme s'il s'agissait de texte, crochets et tout. Si j'utilise ceci:

@if(!empty(Session::get('error'))) {{ Session::get('error')}} @endif

Ensuite, il montre que c'est du texte pur. Si je le change en

<?php if(!empty(Session::get('error'))) { echo Session::get('error'); } ?>

Ça fonctionne bien. Im ok en le gardant comme ça mais je préfère utiliser Blade/Laravel comme son supposé être utilisé donc je me demandais s'il y avait un moyen d'avoir l'instruction @if pour montrer le html rendu et non la version texte?

8
Webtect

Je recommanderais de ne renvoyer que le message d'erreur, puis à votre avis, créez le div. Donc, si vous deviez changer la disposition de la vue, vous le feriez au même endroit.

@if(Session::has('error'))
<div class="alert alert-danger">
  {{ Session::get('error')}}
</div>
@endif

j'espère que cette aide.

26
mdamia

Pour afficher le code HTML rendu, vous devez utiliser {!! $variable->coontent !!} à votre avis, et cela va convertir votre texte HTML en rendu

3

Puisse cet exemple vous aider. Essaye ça

 @if (session('Error'))
     <div class="alert alert-success">
         {{ session('Error') }}
     </div>
@endif
2
Saeed

Essayez de changer votre code de lame en suivant.

@if(!empty(Session::get('error'))) 
    {!! Session::get('error') !!} 
@endif
0
Subash