Ich bin neu in Laravel und versuche zum ersten Mal eine "modulare" Seite zu erstellen. Alles lief gut, meine Grundlayouts, die auf meiner Homepage erweitert wurden, haben einige Sektionen/Ergiebigkeiten ohne Probleme (Inhalt, Titel, etc.) erstellt, aber eine bestimmte @yield
wird immer an der falschen Stelle gerendert stecke es in meine Kopf-Datei (head.blade.php), die bereits einen anderen @yield
für den Titel haben, aber dass man immer innerhalb des Körpers gerendert wird. Ich habe versucht, einige Tests zu machen, und entdeckte, dass, wenn ich meinen Titel @yield
innerhalb <title></title>
innerhalb des OK setze, aber wenn ich es außerhalb des Etiketts setzte, wird es zum Körper bewegt. Das ist eine normale Laravel Arbeitsweise (@yield
kann nicht von alleine sein, nur innerhalb eines Tags) oder etwas ist falsch?@Yield an falscher Stelle platziert
default.blade.php
<!doctype html>
<html>
<head>
@include('includes.head')
</head>
<body>
<div class="mdl-layout mdl-js-layout mdl-layout--fixed-header mdl-layout--no-desktop-drawer-button">
@include('includes.nav')
@yield('tools')
<main class="mdl-layout__content">
<div class="page-content">
@yield('content')
</div>
</main>
@include('includes.footer')
</div>
</body>
</html>
head.blade.php
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta http-equiv="cache-control" content="no-cache">
<meta name="description" content="XXXXXX">
<meta name="author" content="XXXXXXXXXXXXX">
<title>@yield('title')</title> =====> Works normally if put here
@yield('title') =====> Rendered inside the body if put that way
<!-- jQuery 3.2.1 -->
<script src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script>
<!-- Normalize CSS -->
<link rel="stylesheet" type="text/css" href="css/normalize.css">
<!-- Dialog Polyfill -->
<link rel="stylesheet" type="text/css" href="css/dialog-polyfill.css">
<!-- Bootstrap 3.3.7 -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
Sieht aus wie ich dumm war. Wenn das @yield ein gültiges HTML-Tag enthält, wird es an der richtigen Stelle platziert. –
@IsraelPinheiro yield ist nur ein Befehl, um den gewünschten Text in Klammern zu setzen. Es kann auch HTML enthalten, also wird es Ihre '