Расширить шаблон лезвия из сохраненной в базе данных строки

Моя проблема в том, что мне нужно передать строку в качестве аргумента для просмотра, которая содержит теги шаблона Blade, которые будут отображаться. Я провел свое исследование, и я считаю, что другие вопросы не имеют отношения к моей. Следовательно, вот чего я хочу достичь.

Я хочу извлечь основной макет из базы данных и расширить дочерние представления из него. Поэтому в моем случае представление, которое должно быть передано методу view(), должно быть расширено из строки в базе данных.

Так что что-то вроде следующего должно работать в page.blade.php

@extends("<html>@yield('content')</html>") ---> the string shall be passed from database.
@section('content')
...
...
@endsection

Или какой-то другой код из самого контроллера может быть в порядке, например, сначала я вызываю основной макет, а затем передаю его дочернему представлению, которое заменяет раздел "контент".

1 ответ

Что ж, учитывая чрезмерную реакцию сообщества даже после многих просмотров, я решил пойти на обход, пока не найду лучшее решение. (Сарказм предназначен)

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

  1. Расширьте дочерний вид из основного вида (скажем, db_master.blade.php)
  2. В вашем контроллере поместите содержимое из столбца базы данных в главное представление (db_master.blade.php), используя либо класс FileSystem, либо file_put_contents (что бы вы ни чувствовали себя более защищенным).
  3. Теперь верните дочерний вид как обычно.

Примечание. Убедитесь, что вы передаете защищенный код в главное представление (то есть позаботьтесь о том, чтобы предоставить пользователям доступ к движку шаблонов блейдов, поскольку они могут вводить реальный код php).


Пожалуйста, помогите с отзывами и предложениями.

Другие вопросы по тегам