Emchik
@Emchik
Что-то прикольное сделать могу

Как в Laravel использовать функции на страницах из базы данных?

Моя страница из БД:
<h5>{!! setting("number.phone") !!}</h5>

Контроллер:
public function show($page)
{
	$page = Page::wherePublish(true)->whereSlug($page)->first() ?? abort('404');

	$blade = Blade::compileString($page->main);

	return view('base-template', compact('page', 'blade'));
}


Шаблон:
@extends('layouts.app')

@section('seo')
<title>{{ $page->seo_title }}</title>
<meta name="description" content="{{ $page->seo_desction }}">
@endsection

@section('main')
	{!! $blade !!}
@endsection


На выходе я получаю закомментированный php код:
<h5><!--?php echo setting("number.phone"); ?--></h5>


Находил похожие вопросы, но там говорится только о переменных, которые надо отобразить, а у меня функция, которая находится в App\helper.php. Пробовал сделать аналогию, но ничерта.
  • Вопрос задан
  • 135 просмотров
Пригласить эксперта
Ответы на вопрос 1
Может вам все-таки не хранить темплейт в базе? А хранить путь к вьюхе:

return view($page->template_name, compact('page'));


Ну и сделать общий темплейт с seo секцией, а от него наследовать используемые для страниц.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы