Laravel @parent не работает

Я новичок в laravel и пытаюсь создать шаблон для своего приложения, я использую @parent, как показано здесь 'https://laravel.com/docs/5.6/blade#introduction', но он, похоже, не работает, проверьте код ниже, что я делаю не так?

app.blade.php

<!DOCTYPE html>
<html>
<head>
    <title>{{ config('app.name', 'Laravel') }} @yield('title')</title>
</head>
<body>
    <div id = "app">

        @section('heading')
        <h1>Testing</h1>
        @endsection

        <nav class = "navbar navbar-expand-md navbar-light navbar-laravel">
            <div class = "container">
                <a class = "navbar-brand" href = "{{ url('/') }}">
                    {{ config('app.name', 'Laravel') }}
                </a>
                <button class = "navbar-toggler" type = "button" data-toggle = "collapse" data-target = "#navbarSupportedContent" aria-controls = "navbarSupportedContent" aria-expanded = "false" aria-label = "{{ __('Toggle navigation') }}">
                    <span class = "navbar-toggler-icon"></span>
                </button>

                <div class = "collapse navbar-collapse" id = "navbarSupportedContent">
                    <!-- Left Side Of Navbar -->
                    <ul class = "navbar-nav mr-auto">

                    </ul>

                    <!-- Right Side Of Navbar -->
                    <ul class = "navbar-nav ml-auto">
                        <!-- Authentication Links -->
                        @guest
                            <li class = "nav-item">
                                <a class = "nav-link" href = "{{ route('login') }}">{{ __('Login') }}</a>
                            </li>
                            <li class = "nav-item">
                                <a class = "nav-link" href = "{{ route('register') }}">{{ __('Register') }}</a>
                            </li>
                        @else
                            <li class = "nav-item dropdown">
                                <a id = "navbarDropdown" class = "nav-link dropdown-toggle" href = "#" role = "button" data-toggle = "dropdown" aria-haspopup = "true" aria-expanded = "false" v-pre>
                                    {{ Auth::user()->name }} <span class = "caret"></span>
                                </a>

                                <div class = "dropdown-menu dropdown-menu-right" aria-labelledby = "navbarDropdown">
                                    <a class = "dropdown-item" href = "{{ route('logout') }}"
                                       onclick = "event.preventDefault();
                                                     document.getElementById('logout-form').submit();">
                                        {{ __('Logout') }}
                                    </a>

                                    <form id = "logout-form" action = "{{ route('logout') }}" method = "POST" style = "display: none;">
                                        @csrf
                                    </form>
                                </div>
                            </li>
                        @endguest
                    </ul>
                </div>
            </div>
        </nav>

        <main class = "py-4">
            @yield('content')
        </main>
    </div>
</body>
</html>

у меня есть раздел («заголовок») в этом файле. теперь у меня есть другое представление register.blade.php

@extends('layouts.app')

@section('title','Testing')

@section('heading')
    @parent
@endsection

@section('content')
<div class = "container">
    <div class = "row justify-content-center">
        <div class = "col-md-8">
            <div class = "card">
                <div class = "card-header">{{ __('Register') }}</div>

                <div class = "card-body">
                    <form method = "POST" action = "{{ route('register') }}" aria-label = "{{ __('Register') }}">
                        @csrf

                        <div class = "form-group row">
                            <label for = "name" class = "col-md-4 col-form-label text-md-right">{{ __('Name') }}</label>

                            <div class = "col-md-6">
                                <input id = "name" type = "text" class = "form-control{{ $errors->has('name') ? ' is-invalid' : '' }}" name = "name" value = "{{ old('name') }}" required autofocus>

                                @if ($errors->has('name'))
                                    <span class = "invalid-feedback" role = "alert">
                                        <strong>{{ $errors->first('name') }}</strong>
                                    </span>
                                @endif
                            </div>
                        </div>

                        <div class = "form-group row">
                            <label for = "email" class = "col-md-4 col-form-label text-md-right">{{ __('E-Mail Address') }}</label>

                            <div class = "col-md-6">
                                <input id = "email" type = "email" class = "form-control{{ $errors->has('email') ? ' is-invalid' : '' }}" name = "email" value = "{{ old('email') }}" required>

                                @if ($errors->has('email'))
                                    <span class = "invalid-feedback" role = "alert">
                                        <strong>{{ $errors->first('email') }}</strong>
                                    </span>
                                @endif
                            </div>
                        </div>

                        <div class = "form-group row">
                            <label for = "password" class = "col-md-4 col-form-label text-md-right">{{ __('Password') }}</label>

                            <div class = "col-md-6">
                                <input id = "password" type = "password" class = "form-control{{ $errors->has('password') ? ' is-invalid' : '' }}" name = "password" required>

                                @if ($errors->has('password'))
                                    <span class = "invalid-feedback" role = "alert">
                                        <strong>{{ $errors->first('password') }}</strong>
                                    </span>
                                @endif
                            </div>
                        </div>

                        <div class = "form-group row">
                            <label for = "password-confirm" class = "col-md-4 col-form-label text-md-right">{{ __('Confirm Password') }}</label>

                            <div class = "col-md-6">
                                <input id = "password-confirm" type = "password" class = "form-control" name = "password_confirmation" required>
                            </div>
                        </div>

                        <div class = "form-group row mb-0">
                            <div class = "col-md-6 offset-md-4">
                                <button type = "submit" class = "btn btn-primary">
                                    {{ __('Register') }}
                                </button>
                            </div>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>
@endsection

теперь я расширяю этот файл и использую @parent, поэтому раздел заголовка загружается из родительского представления, но он не работает, любая помощь будет принята с благодарностью, заранее спасибо

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

Wasif Khalil 26.07.2018 10:35

Я прочитал весь пост и не нашел, в чем проблема. Вместо этого я дважды обнаружил, что "не работает". Итак, теперь я могу предположить, что вы получаете фактическое сообщение об ошибке, что у вас дублированный контент, что вы вообще не получаете контент ... многие способы «не работает», но все же вместо того, чтобы пытаться объяснить лучше те же люди, которых вы просите о помощи, вы жалуетесь, поэтому я оставлю ответы и время, чтобы найти их себе, спасибо и пока

Amarnasan 26.07.2018 10:39

Я борюсь в Laravel 5.8 с разницей между @endsection и @show, и нужен ли мне @parent или нет, и я использую Laravel с версии 4 в течение 5 лет. Я нашел этот вопрос действительно полезным, и ответ Тана Нгуена дал мне необходимую информацию. Документация хороша, но иногда мне нужен ответ StackExchange, чтобы подтолкнуть меня в правильном направлении.

DavidHyogo 30.04.2020 06:48
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
3
691
2

Ответы 2

В документация они используют @show, а не @endsection. Вы пробовали это?

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

Wasif Khalil 26.07.2018 10:25

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

Webber 26.07.2018 13:24

Этот небольшой обмен также помог мне наконец получить момент "Эврики" с @endsection, @show и @parent.

DavidHyogo 30.04.2020 06:47

Директива @endsection будет определять только раздел, в то время как @show будет определять и немедленно создавать раздел. В app.blade вы используете

@section('heading')
    <h1>Testing</h1>
@show

и в register.blade вы можете использовать

@section('heading')
    @parent
@endsection

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