Шаблон Laravel Blade Стек не работает - PullRequest
0 голосов
/ 31 октября 2018

Я занимаюсь разработкой веб-приложения с использованием Laravel. Сейчас я выполняю рендеринг контента с использованием функции стека Blade, как упомянуто здесь: https://laravel.com/docs/5.7/blade#stacks. Проблема в том, что он не работает. Смотрите мой простой код ниже.

Это мой просмотр контента

@extends('layouts.app')


@stack('stack_content')

   <h1>Other contents</h1>

@prepend('stack_content')
      <h1>This is my name</h1>
@endprepend


@section('content')

@endsection

Как это не работает, так это то, что оно не отображает этот контент

<h1>This is my name</h1>

вообще. Не только область стека, но и в исходной области. Что не так?

1 Ответ

0 голосов
/ 31 октября 2018

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

В примере в документации стек определяется в макете <head>. Шаблон, который расширяет этот макет, - это то место, куда вы должны вставить или добавить код к этому стеку. (Хотя документы могут быть более ясными об этом)

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

Вы не можете определить раздел с yield, а затем определить содержимое внутри этого раздела. Как только макет достигнет @yield или @stack, он будет отображать то, что было определено в этом разделе.

Другими словами, это работает, потому что содержимое раздела отображается перед выходом:

            @section('test')
                <h1>Hello World</h1>
            @endsection
            @yield('test')

Но это не так:

            @yield('test')
            @section('test')
                <h1>Hello World</h1>
            @endsection

Тот же логический порядок применяется к стекам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...