我刚开始学习Laravel并想知道如何去做下面的事情。我会给出代码然后解释一下。
我有一个文件includes/head.blade.php
。此文件包含您在<head>
中找到的内容。所以它包含<title>@yield('title')</title>
如果我现在在页面中包含此文件,请像pages/about.blade.php
那样说@include('includes.head')
,那么如何使用此行修改嵌套在include中的<title>
@section('title', ' bout Us')
答案 0 :(得分:1)
如果您包含@include('includes.head')
之类的刀片文件,则无法在<title>@yield('title')</title>
中执行head.blade.php
。正确的方法是在包含文件时传递值:
@include('includes.head',['title'=>'About Us'])
并且在head.blade.php
中你必须这样做:
<title>
@if(isset($title))
{{ $title }}
@endif
</title>
但如果您extends
heade.blade.php ,那么您可以这样做:
<强> head.blade.php 强>
<title>@yield('title')</title>
<强> about.blade.php 强>
@extends('includes.head')
@section('title')
{{ "About Us" }}
@endsection
了解更多信息Check this
答案 1 :(得分:0)
我认为您可以像这样使用@include
,请查看DOC。
@include('includes.head', ['title' => 'About Us'])
并且title
应该打印为,
<title>{{ $title }}</title>
为最佳做法
检查laravel blade templating
功能,
您可以定义master layout
,扩展该布局,您可以创建新视图。就像在这个DOC中一样。
master.blade.php
<html>
<head>
<title>@yield('title')</title>
</head>
<body>
@section('sidebar')
This is the master sidebar.
@show
<div class="container">
@yield('content')
</div>
</body>
</html>
about.blade.php
@extends('master')
@section('title', 'About Us') // this will replace the **title section** in master.blade
//OR
//@section('title')
// About Us
//@endsection
@section('sidebar')
<p>This is appended to the master sidebar.</p>
@endsection
@section('content')
<p>This is my body content.</p>
@endsection