Laravel - Объединить {!!... !!} и актив ('image / my.png') приводят к выводу кода актива, а не изображения - PullRequest
1 голос
/ 07 марта 2019

Как видно из названия, я пытаюсь показать HTML-код, используя {!! ... !!}, HTML-код поступает из базы данных.Но когда код имеет asset('image/my.png'), он не показывает изображение, в противном случае он показывает код asset('image/my.png').

Как показать изображение, используя:

asset('image/my.png') 

Код:

<div>
<img src="{{ asset('images/my1.png') }}
{!! <img src="{{ asset('images/my2.png') }}" /> !!}
</div>

Но нужно добавить HTML-код из базы данных между моим блэйдом View?

Ответы [ 2 ]

1 голос
/ 07 марта 2019

{!! !!} выведет необработанную строку, поэтому не будет оценивать шаблоны блейдов.Вместо этого вы можете сделать что-то вроде:

  //Just to know what we're talking about
  $databaseString = "<img src=\"{{ asset('images/my2.png') }}\" />"; 
  $compiled = Blade::compileString($databaseString);
  // $compiled = <img src="<?php echo e(asset('images/my2.png')); ?>" />

и для его отображения вы можете использовать:

  <div>
      {!! eval("?>".$compiled) !!}
  </div>

Конечно, это идет с обычным предостережением , никогда не используйте этозапустить ненадежный код

0 голосов
/ 07 марта 2019

Вы можете использовать:

<div>
     <img src="{{ asset('images/my1.png') }}
     $myDatabase = "<img src="{{ asset('images/my2.png') }}" />";
     {{html_entity_decode($myDatabase);}}
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...