Laravel — Combine {!! … !!} и asset (‘изображение / my.png’) приводят к печати кода ресурса, в котором не отображается изображение

#php #laravel #laravel-blade

#php #laravel #laravel-blade

Вопрос:

Как сказано в названии, я пытаюсь показать 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-код из базы данных между моим видом блейда?

Комментарии:

1. Можете ли вы вставить свой код сюда?

2. Я добавил код. Пожалуйста, перепроверьте. Спасибо.

3. В вашем коде отсутствует цитата

4. Извините, что неправильно скопировал вставку. Но реальный код имеет «в конце строки. Пожалуйста, перепроверьте. Спасибо.

5. ИТАК, вы получаете <img src="{{ asset('images/my2.png') }}" /> из базы данных?

Ответ №1:

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

   //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>
  

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

Комментарии:

1. Значение Blade не определено. Можете ли вы объяснить, какой импорт вы выполняете?

2. @Crocodile, который ему нужен use IlluminateSupportFacadesBlade;

Ответ №2:

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

 <div>
     <img src="{{ asset('images/my1.png') }}
     $myDatabase = "<img src="{{ asset('images/my2.png') }}" />";
     {{html_entity_decode($myDatabase);}}
</div>
  

Комментарии:

1. он показывает <img src> code / HTML как текст, не скомпилированный HTML и PHP?