本文概述
- 母版页布局
- 扩展主版面
- 使用@parent指令
让我们通过一个例子来理解。
- 首先, 在resources / views /目录中创建名为“ layout”的文件夹。
- 现在, 在布局文件夹“ master.blade.php”中创建一个新文件。
- 我们在master.blade.php文件中添加以下代码。
<
html>
<
head>
<
title>
Master Page Layout <
/title>
<
/head>
<
body>
<
div class="container">
@yield('content')<
/div>
@yield('footer')<
/body>
<
/html>
【Laravel模板继承】在上面的代码中, 我们使用了@yield指令。 @yield用于显示内容。 @yield(’ content’ )显示内容的内容, 而@yield(’ footer’ )显示页脚的内容。
扩展主版面
- 现在, 我们将在contact.blade.php文件中扩展上述主布局, 如下所示:
@extends('layout.master')@section('content')<
h1>
Contact Page <
/h1>
@stop
在上面的代码中, 我们使用@extends指令。 “ @extends”指令用于继承contact.blade.php文件中的刀片布局。 ‘ @section(’ content’ )’ 定义了内容的部分。
- 现在, 在web.php文件中添加以下路由。
Route::get('/contact', function () {return view('contact');
});
输出量
文章图片
我们还可以在contact.blade.php文件中添加javascript代码。假设我在contact.blade.php文件中添加了以下代码。
@section('footer')<
script>
alert("Hello srcmini") <
/script>
@stop
在上面的代码中, 我创建了警报框, 其中显示了消息“ Hello srcmini”。
输出量
文章图片
让我们看一下刀片模板的另一个示例。
- 我们创建一个名为“ post.blade.php”的新文件。
@extends('layout.master')@section('content')<
h1>
Post Page:<
/h1>
<
h2>
id is :{{$id}}<
br>
Password is :{{$password}}<
br>
Name is : {{$name}}<
/h2>
@stop
上面的代码定义了内容的一部分, 我们分别在其中显示id, password和name的值。
- 现在, 我们创建一个名为“ PostController.php”的控制器。
<
?phpnamespace App\Http\Controllers;
use Illuminate\Http\Request;
class PostController extends Controller{// public function show_post($id, $password, $name){return view('post', compact('id', 'password', 'name'));
}}
在PostController.php文件中, 我们定义了一个名为show_post()的新函数, 该函数将数据传递到post.blade.php文件。
- 最后, 我们在web.php文件中定义一条路由。
Route::get('/post/{id}/{password}/{name}', 'PostController@show_post');
输出量
文章图片
到目前为止, 我们已经看到post.blade.php和contact.blade.php文件都在扩展主布局文件。这是主布局的主要优点, 即每个文件都可以扩展主文件的布局并添加自己的功能。
使用@parent指令 @parent指令的用途是显示在主版式中定义的部分的内容。
让我们通过一个例子来理解。
- 首先, 我们创建一个主文件。
<
html>
<
head>
<
title>
Master Page Layout <
/title>
<
/head>
<
body>
<
div class="container">
@yield('content')<
/div>
@section('footer')This is footer @show<
/body>
<
/html>
- 现在, 我们创建contact.blade.php, 在其中扩展上面的master.blade.php文件。
@extends('layout.master')@section('content')<
h1>
Contact Page<
/h1>
@stop @section('footer')@parent<
p>
this is appended<
/p>
@stop
在上面的代码中, @parent指令将段落内容添加到页脚节。
输出量
文章图片
推荐阅读
- Laravel路由参数
- Laravel会话session
- Laravel路由控制器
- Laravel路由组
- Laravel资源控制器
- Laravel迁移结构
- Laravel将数据传递到视图
- Laravel迁移命令
- Laravel中间件