шаблон лезвия ларавеллы - как удалить деталь с расширенной страницы - PullRequest
0 голосов
/ 09 июня 2018

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

У меня есть шаблон лезвия.У него есть мета-доходность.Но также включен один meta.blade.php, который содержит все метатеги.Но я не хочу включать мета-страницу для некоторых моих страниц.Есть шаблон для визуализации:

my_template

<header>
    @yield('meta')
    @include('metapage')

    @yield('style')
    @yield('js')
</header>

my view.blade.php

@extends('my_template')

@section('meta')
    <meta description...>
@endsection

@section('style')
    //content
@endsection

@section('js')
    //content
@endsection

Мой вопрос: есть ли способ сделать что-то вроде этого:

@extends('my_template')->except('metapage')

Я знаю, что такого не существует.Но мне это нужно.Я надеюсь, что кто-нибудь может дать мне решение.

Ответы [ 2 ]

0 голосов
/ 09 июня 2018

Существует определенное решение, которое я делаю:

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

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

0 голосов
/ 09 июня 2018

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

@extends('my_template')

@section('meta')
    @component('meta')
        @slot('description', 'my amazing description')
    @endcomponent
@endsection

// other code here as usual

Ваш компонент будет отвечать за проверку того, что существует, а что нет 'т, например, вот так:

@isset($description)
    <meta name="description" content="{{ $description }}">
@endisset

@isset($title)
    <title>{{ $title }}</title>
@endisset

// etc, the title is just an example

Документация: https://laravel.com/docs/5.6/blade#components-and-slots

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