Я новичок в 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, поэтому раздел заголовка загружается из родительского представления, но он не работает, любая помощь будет принята с благодарностью, заранее спасибо
Я прочитал весь пост и не нашел, в чем проблема. Вместо этого я дважды обнаружил, что "не работает". Итак, теперь я могу предположить, что вы получаете фактическое сообщение об ошибке, что у вас дублированный контент, что вы вообще не получаете контент ... многие способы «не работает», но все же вместо того, чтобы пытаться объяснить лучше те же люди, которых вы просите о помощи, вы жалуетесь, поэтому я оставлю ответы и время, чтобы найти их себе, спасибо и пока
Я борюсь в Laravel 5.8 с разницей между @endsection и @show, и нужен ли мне @parent или нет, и я использую Laravel с версии 4 в течение 5 лет. Я нашел этот вопрос действительно полезным, и ответ Тана Нгуена дал мне необходимую информацию. Документация хороша, но иногда мне нужен ответ StackExchange, чтобы подтолкнуть меня в правильном направлении.






В документация они используют @show, а не @endsection. Вы пробовали это?
он работает после того, как я заменяю его на @show, но он отображается все время, я хотел показать этот раздел только на некоторых страницах, теперь я думаю, что я неправильно понял эту директиву, это просто расширение раздела, а не когда я хочу показать это условно на некоторых страницах
Собственно, раздел может быть пустым, если вы не хотите ничего показывать по умолчанию, но все же необходимо иметь возможность его расширять.
Этот небольшой обмен также помог мне наконец получить момент "Эврики" с @endsection, @show и @parent.
Директива @endsection будет определять только раздел, в то время как @show будет определять и немедленно создавать раздел. В app.blade вы используете
@section('heading')
<h1>Testing</h1>
@show
и в register.blade вы можете использовать
@section('heading')
@parent
@endsection
такое случается, когда врач не полностью прислушивается к проблеме пациента, точно так же, как вы не прочитали весь пост, в любом случае я лучше обсуду вопрос, который я задал, чем отвечу кому-то, у кого нет ничего лучшего, пока