我是Laravel的新手,我还不确定一切如何工作。我试图通过将appart代码包括在页面的开头来将其分成不同的部分,然后在该页面中创建一个hero部分,然后再添加一些html。
所有内容都会显示,但是页面上的html代码正在其他所有内容之上呈现。
该线程看起来可能是未关闭的东西,但据我所知,一切都在正常进行
Including header in wrong place 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块,然后是“页脚”,然后显示“英雄”。
顺序应为脚本->英雄-> html->页脚
@include('blocks/scripts') just has html code
@extends('blocks/hero') has @yield('title') and @yield('subtitle')
@include('blocks/footer') just text
答案 0 :(得分:0)
在刀片文件中,@section('something')
之外的每个直接HTML都将呈现在文件顶部。
您需要将@yield('something')
放入扩展文件中,然后像使用 title 和那样用@section('something')
和@endsection('something')
包装HTML代码字幕。
答案 1 :(得分:0)
我更改了一些模板的名称,因为很难理解您在注释中添加的代码。但是我认为它可以帮助您组织代码。
具有html,head和body标签的模板不是要包含的模板,而是从中扩展其他模板并利用yield的模板。例如@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
最后一个是必须从路由或控制器返回的视图,以便一切正常。
希望有帮助