@Flasher

На всех страницах @yield ничего не выводит. Как расшарить данные между страницами в blade?

Еще раз попробую задать вопрос более детально. На всех страница кроме layouts/app.blade.php эти блоки пустые. Почему? Как расшарить yield на все страницы, а не только на ту, где я подключаю вьюху.

<li>
    @yield('fresh_comments')
    @yield('news_month')
    @yield('news_random')
</li>
  • Вопрос задан
  • 378 просмотров
Решения вопроса 2
@den-masonov
Может вы не указали директиву @extends в подключаемом файле? С указанием не layouts/app.blade.php, а того файла где проставили yield.

Если не сработает, то думаю решить задачу поможет директива @include.
Ответ написан
@Flasher Автор вопроса
Спасибо за помощь @den-masonov

Примерно так должны выглядеть шаблоны:

Основной layouts
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>

@yield('content')
@yield('comment')
@yield('news')

</body>
</html>


Главный шаблон от которого все будут потом наследоваться
@extends('layouts.app')

@section('content')
    {{ $content = 'Контент' }} <br>
@endsection


@section('comment')
    {{ $comment = 'Коммент' }} <br>
@endsection


@section('news')
    {{ $news = 'Новости' }} <br>
@endsection


Например внутрення страница новостей, со всеми модулями от наследуемого главного шаблона
@extends('news.index')

@section('content')
    {{ $news = 'Вложенные новости' }} <br><br>
@endsection
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
wielski
@wielski
✔ Совет: Вам помогли? Отметьте ответы решением.
А зачем вам yield где-либо кроме основного шаблона?
Опишите задачу более детально, возможно, есть более правильное и элегантное решение?
Ответ написан
Ваш ответ на вопрос

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

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