Расширить шаблон лезвия из сохраненной в базе данных строки
Моя проблема в том, что мне нужно передать строку в качестве аргумента для просмотра, которая содержит теги шаблона Blade, которые будут отображаться. Я провел свое исследование, и я считаю, что другие вопросы не имеют отношения к моей. Следовательно, вот чего я хочу достичь.
Я хочу извлечь основной макет из базы данных и расширить дочерние представления из него. Поэтому в моем случае представление, которое должно быть передано методу view(), должно быть расширено из строки в базе данных.
Так что что-то вроде следующего должно работать в page.blade.php
@extends("<html>@yield('content')</html>") ---> the string shall be passed from database.
@section('content')
...
...
@endsection
Или какой-то другой код из самого контроллера может быть в порядке, например, сначала я вызываю основной макет, а затем передаю его дочернему представлению, которое заменяет раздел "контент".
1 ответ
Что ж, учитывая чрезмерную реакцию сообщества даже после многих просмотров, я решил пойти на обход, пока не найду лучшее решение. (Сарказм предназначен)
Документируя это здесь, чтобы дать подсказку тем, кто может попробовать то же самое.
- Расширьте дочерний вид из основного вида (скажем, db_master.blade.php)
- В вашем контроллере поместите содержимое из столбца базы данных в главное представление (db_master.blade.php), используя либо класс FileSystem, либо file_put_contents (что бы вы ни чувствовали себя более защищенным).
- Теперь верните дочерний вид как обычно.
Примечание. Убедитесь, что вы передаете защищенный код в главное представление (то есть позаботьтесь о том, чтобы предоставить пользователям доступ к движку шаблонов блейдов, поскольку они могут вводить реальный код php).
Пожалуйста, помогите с отзывами и предложениями.