В этом уроке мы создадим вспомогательную функцию в приложении Laravel для преобразования содержимого Markdown в HTML с использованием библиотеки League/Commonmark. Мы рассмотрим шаги по созданию вспомогательного файла, включению его в наш проект Laravel и использованию в шаблоне Blade. Этот механизм используется в Laravel 11 для обеспечения глобальной доступности функций.
Альтернативой является обработка преобразования Markdown в контроллере перед передачей данных в представление, поэтому нам больше не нужно создавать вспомогательный файл:
use League\CommonMark\CommonMarkConverter; public function show($id) { $course = Course::find($id); $converter = new CommonMarkConverter(); $post->description = $converter->convertToHtml($post->description); return view('post.show', compact('post')); }
Сначала мы устанавливаем библиотеку лиги/commonmark через Composer:
composer require league/commonmark
Далее мы создадим файл helpers.php для определения нашей вспомогательной функции. Этот файл можно разместить в каталоге приложения или в любом другом предпочтительном месте.
touch app/helpers.php
Откройте app/helpers.php и добавьте следующий контент:
convertToHtml($markdown); } }
Чтобы Laravel автоматически загружал файл helpers.php, нам нужно изменить файл композитора.json, добавив путь к helpers.php в раздел автозагрузки:
"autoload": { "files": [ "app/helpers.php" ] }
После изменения файла Composer.json повторно создайте файлы автозагрузки Composer, выполнив:
composer dump-autoload
Определив и загрузив вспомогательную функцию, мы теперь можем использовать ее в шаблонах Blade для преобразования Markdown в HTML:
{!! markdownToHtml($post->description) !!}
Это руководство предназначено для того, чтобы показать, как можно сделать пользовательские функции доступными в шаблонах блейдов.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3