@Denis9999

Требуются не используемые переменные в blade-шаблоне?

main - это основной шаблон, который наследуется дочерним. Вот код дочернего:
@extends('main')
@section('content')
    <h1>Content</h1>
    {{dump($advertId)}}
@endsection


Ошибка: Undefined variable: adverts
Проблема заключается в том, что в шаблоне родителе в секции content используется переменная adverts, а в дочернем она не нужна, так как эта секция переопределяется и там эта переменная не используются.

Если отправить в дочерний шаблон переменную adverts из контроллера то ошибки не будет. Но я не думаю что это будет хорошим решением. Как правильно здесь поступить?
  • Вопрос задан
  • 133 просмотра
Решения вопроса 2
Sanasol
@Sanasol Куратор тега Laravel
нельзя просто так взять и загуглить ошибку
Комментировать
Wolfnsex
@Wolfnsex
Если не хочешь быть первым - не вставай в очередь!
Если отправить в дочерний шаблон переменную adverts из контроллера то ошибки не будет. Но я не думаю что это будет хорошим решением. Как правильно здесь поступить?
Если я правильно Вас понял и мне не изменяет память - это довольно старая ошибка Laravel/Blade, которая заключается в том, что переменные "разворачиваются" раньше, чем переопределяются секции в шаблоне. Подозреваю, что её до сих пор не исправили.

Как поступить, варианты:
1. Сделать из "main"а шаблон без переменных, наследуя от него другие шаблоны и передавать переменные в них
2. Сделать как Вам предложили выше, т.е. передавать переменную глобально
3. Передавать переменную везде, где её "не хватает", не смотря на то, что она по факту использовать не будет

Я расположил варианты в том порядке, в котором бы их использовал я :)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы