laravel избегает всех HTML в шаблоне клинка

im строя небольшую CMS в laravel, и каждый я попытался показать содержимое, которое хранится в БД, оно показывает HTML-теги, а не выполняет их как, например, есть auto html_entity_decode для всех печатных данных

<?php class CmsController extends BaseController{ public function Content($name){ $data = Pages::where('CID','=',Config::get('company.CID'))->where('page_name','=',$name)->first(); return View::make('cms.page')->with('content', $data); } } ?> 

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

 {{$content->page_desc}} 

и тройная фигурная скобка

 {{{$content->page_desc}}} 

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

Измените свой синтаксис с {{ }} на {!! !!} {!! !!} .

Как сказал Альфа в комментарии выше (не ответ, поэтому я думал, что я опубликую), в Laravel 5, {{ }} (ранее неэксклюзивный выходной синтаксис) был изменен на {!! !!} {!! !!} . Замените {{ }} на {!! !!} {!! !!} и он должен работать.

используйте этот тег {!! текст описания !!}

Включить контент в {! !}.

Нет проблем с отображением HTML-кода в шаблонах клинков.

Для теста вы можете добавить route.php только один маршрут:

 Route::get('/', function () { $data = new stdClass(); $data->page_desc = '<strong>aaa</strong><em>bbb</em> <p>New paragaph</p><script>alert("Hello");</script>'; return View::make('hello')->with('content', $data); } ); 

и в файле hello.blade.php :

 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> </head> <body> {{ $content->page_desc }} </body> </html> 

Для следующего кода вы получите результат как на изображении

Вывод

Так что, вероятно, page_desc в вашем случае не то, что вы ожидаете. Но, как вы видите, это может быть потенциально опасно, если кто-то использует, например, «тег», чтобы вы, вероятно, на своем маршруте, прежде чем назначать фильтру шаблона клинка, некоторые теги

РЕДАКТИРОВАТЬ

Я также проверил его, поставив тот же код в базу данных:

 Route::get('/', function () { $data = User::where('id','=',1)->first(); return View::make('hello')->with('content', $data); } ); 

Результат в этом случае точно такой же

Edit2

Я также не знаю, является ли ваша модель вашей моделью или моделью поставщика. Например, он может иметь доступ внутрь:

 public function getPageDescAttribute($value) { return htmlspecialchars($value); } 

а затем, когда вы получите атрибут page_desc вы получите измененный page_desc с помощью htmlspecialchars . Поэтому, если вы уверены, что данные в базе данных с raw html (не экранированы), вы должны посмотреть на этот класс Pages

Я была такая же проблема. Спасибо за ответы выше, я решил свою проблему. Если есть люди, столкнувшиеся с одной и той же проблемой, вот два способа решить эту проблему:

  • Вы можете использовать {!! $news->body !!} {!! $news->body !!}
  • Вы можете использовать традиционное открытие php (это не рекомендуется), например: <?php echo $string ?>

Я надеюсь, что это помогает.

{{html_entity_decode ($ post-> content ())}} сохранил проблему для меня с Laravel 4.0. Теперь мой HTML-контент интерпретируется так, как должен.