Laravel - рендеринг HTML в неправильном месте - PullRequest
0 голосов
/ 10 июня 2019

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

Все показывает, кроме HTML-кода, который находится на странице.рендерит поверх всего остального.

Эта тема выглядела так, как будто это могут быть вещи, которые не закрываются, но, как я вижу, все работает как надо

Включение заголовка в неправильном местеLaravel 4

@include('blocks/scripts')

@extends('blocks/hero')

@section('title')
text here
@stop

@section('subtitle')
another text
@stop

<div class="container">
        <div class="row">
            <div class="col-12">
                   more text
            </div>
            <div class="col-6">
                <h2 class="text-center">header</h2>
                <p class="text-center">more text</p>
            </div>
            <div class="col-6">
                    <h2 class="text-center">header</h2>
                    <p class="text-center">more text</p>
            </div>
        </div>
    </div>

@include('blocks/footer')

Это файл.Блок HTML визуализируется сразу после «сценариев», после которого следует «нижний колонтитул», а затем отображается «герой».

Порядок должен быть следующим: scripts-> hero-> html-> footer

@include('blocks/scripts') just has html code
@extends('blocks/hero') has  @yield('title') and @yield('subtitle')
@include('blocks/footer') just text

Ответы [ 2 ]

0 голосов
/ 10 июня 2019

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

Шаблон, в котором есть теги html, head и body, это не шаблон, который нужно включать, а расширение других шаблонов из него и использованиедоходности.Например, @yield ('main-content'):

blocks / main.blade.php :

<!doctype html> 
<html lang="{{ app()->getLocale() }}"> 
    <head> 
        <meta charset="utf-8"> 
        <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    </head>
    <body>
        @yield('main-content')
    </body>
</html>

blocks / hero.blade.php
Это шаблон, который вы можете расширить от основного и добавить контент в @yield('main-content') с помощью @section('main-content'):

@extends('blocks/main')
@section('main-content')
<div class="container-fuid mx-0 wlgx_hero"> 
    <div class="row"> 
        <div class="col-12"> 
            @include('blocks/header') 
            <section id="hero_text"> 
                <h1 class="text-center text-white py-5">
                    @yield('title')
                </h1> 
                <hr class="purple_line pb-3"> 
                <section id="subtitle"> 
                    <p class="text-center">
                        @yield('subtitle')
                    </p> 
                </section> 
            </section> 
        </div> 
    </div> 
</div>
@yield('hero-content')
@endsection('main-content')

Блейд в вашем вопросе (я не знаю названия) может, в свою очередь, простирается от героя и заполняет их доходности:

@extends('blocks/hero')

@section('title')
text here
@stop

@section('subtitle')
another text
@stop

@section('hero-content')
<div class="container">
    <div class="row">
        <div class="col-12">
            more text
        </div>
        <div class="col-6">
            <h2 class="text-center">header</h2>
            <p class="text-center">more text</p>
        </div>
        <div class="col-6">
            <h2 class="text-center">header</h2>
            <p class="text-center">more text</p>
        </div>
    </div>
</div>
@stop

Последнее - это представление, которое вы должны вернуть с маршрута или контроллера, чтобы все работало.

Надеюсь, это поможет

0 голосов
/ 10 июня 2019

В блейд-файлах каждый прямой HTML за пределами @section('something') будет отображаться в верхней части файла.

Вам нужно поместить @yield('something') в расширенный файл, затем обернуть свой HTML-код с @section('something') и @endsection('something'), как то, что вы делаете с title и subtitle .

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