#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?