Laravel 5 : 블레이드를 사용하여 HTML 표시
다음과 같이 내보기 중 하나에 문자열이 반환되었습니다.
$text = '<p><strong>Lorem</strong> ipsum dolor <img src="images/test.jpg"></p>'
Blade로 표시하려고합니다.
{{$text}}
그러나 출력은 렌더링 된 HTML 대신 원시 문자열입니다. Laravel 5에서 블레이드로 HTML을 표시하려면 어떻게합니까?
추신. PHP echo()
가 HTML을 올바르게 표시합니다.
당신은 사용해야합니다
{!! $text !!}
사용하면 문자열이 자동 이스케이프됩니다 {{ $text }}
.
라 라벨 5
{!!html_entity_decode($text)!!}
이 링크를 통해 알아 낸 RachidLaasri 답변 참조
당신은 이것을 시도 할 수 있습니다 :
{!! $text !!}
http://laravel.com/docs/5.0/upgrade#upgrade-5.0을 살펴보십시오.
사용하시기 바랍니다
{!! $test !!}
데이터, 찌르기 등을 렌더링하려는 경우 HTML의 경우에만
{{ $test }}
블레이드 파일을 컴파일 할 때
{{ $test }}
<?php echo e($test) ?>
동안 으로 변환됩니다
{!! $test !!}
로 변환 <?php echo $test ?>
다른 방법이 있습니다. 객체 목적이 html을 렌더링하는 것이라면 메소드 \Illuminate\Contracts\Support\Htmlable
가있는 계약을 구현할 수 있습니다 toHtml()
.
그런 다음 블레이드에서 해당 객체를 다음과 같이 렌더링 할 수 있습니다 {{ $someObject }}
( {!! !!}
구문이 필요 없음 ).
또한 html 속성을 반환하고 html 속성을 알고 \Illuminate\Support\HtmlString
싶다면 다음과 같이 클래스를 사용 하십시오.
public function getProductDescription()
{
return new HtmlString($this->description);
}
그런 다음처럼 사용하십시오 {{ $product->getProductDescription() }}
.
물론 페이지에 원시 HTML을 직접 렌더링 할 때는 책임을 져야합니다.
이 시도. 그것은 나를 위해 일했다.
{{ html_entity_decode($text) }}
Laravel Blade 템플릿에서 {{}}은 html을 이스케이프합니다. 컨트롤러에서 HTML을 표시하려면 문자열에서 HTML을 디코딩하십시오.
당신이 사용할 수있는 {!! Laravel에서 HTML 코드를 렌더링하기위한 $ text !!}
{!! $text !!}
당신이 사용하는 경우
{{ $text }}
HTML 코드를 렌더링하지 않고 문자열로 인쇄합니다.
{!! $text !!}
데이터를 이스케이프하지 않고 표시하는 데 사용 합니다. 사용자가 제공 한 데이터는 정리하지 않은 상태에서이 작업을 수행하지 마십시오.
그것의 간단한
{!! $text !!}
laravel은 dom 요소로 컴파일 {{$text}}
하고 문자열로 인쇄
라 라벨 5에서 여러 가지 방법으로 할 수 있습니다.
{!! $text !!}
{!! html_entity_decode($text) !!}
다음과 같은 조건이있는 경우 처음 사용하는 세 가지 방법을 사용하여 그렇게 할 수 있습니다
{!! $text !!}
두 번째 방법입니다
<td class="nowrap">
@if( $order->status == '0' )
<button class="btn btn-danger">Inactive</button>
@else
<button class="btn btn-success">Active</button>
@endif
</td>
블레이드에서 삼항 연산자를 사용하기위한 세 번째 올바른 방법
<td class="nowrap">
{!! $order->status=='0' ?
'<button class="btn btn-danger">Inactive</button> :
'<button class="btn btn-success">Active</button> !!}
</td>
나는 세 번째 방법이 블레이드의 중고 삼항 연산자에 완벽하기를 바랍니다.
데이터 사용을 피하려면
{{ $html }}
데이터 사용을 피하고 싶지 않은 경우
{!! $html !!}
하지만 Laravel-4까지는
{{ HTML::link('/auth/logout', 'Sign Out', array('class' => 'btn btn-default btn-flat')) }}
라 라벨 -5에 오면
{!! HTML::link('/auth/logout', 'Sign Out', array('class' => 'btn btn-default btn-flat')) !!}
PHP 함수를 사용 하여이 작업을 수행 할 수도 있습니다
{{ html_entity_decode($data) }}
이 함수의 매개 변수에 대한 PHP 문서를 통해 이동
이것은 Laravel 5.6에서 잘 작동합니다
<?php echo "$text"; ?>
다른 방법으로
{!! $text !!}
HTML 코드를 렌더링하지 않고 문자열로 인쇄합니다.
자세한 내용은 오픈 링크 :- 블레이드를 사용하여 HTML 표시
텍스트 영역에서 tinymce 및 마크 업을 사용하는 사람 :
{{ htmlspecialchars($text) }}
나는 거기에 있었고 내 잘못이었다. 그리고 매우 멍청한 것.
파일 이름에서 .blade 확장자를 잊어 버린 경우 해당 파일은 블레이드를 이해하지 못하지만 PHP 코드를 실행합니다. 사용해야합니다
/resources/views/filename.blade.php
대신에
/resources/views/filename.php
이것이 도움이되기를 바랍니다.
이것을 시도하십시오, 효과가 있습니다 :
@php
echo $text;
@endphp
참고 URL : https://stackoverflow.com/questions/29253979/laravel-5-display-html-with-blade
'IT story' 카테고리의 다른 글
JavaScript / JQuery : $ (window) .resize 크기 조정이 완료된 후 실행하는 방법은 무엇입니까? (0) | 2020.04.16 |
---|---|
너무 많은 매개 변수가 있습니까? (0) | 2020.04.16 |
영역 파일을 찾는 방법은 무엇입니까? (0) | 2020.04.16 |
Maven : POM에 종속성을 추가 한 후 저장소를 업데이트하는 명령 (0) | 2020.04.16 |
UINavigationBar를 투명하게 만들기 (0) | 2020.04.16 |