📜  Laravel模板继承

📅  最后修改于: 2021-01-05 10:44:24             🧑  作者: Mango

模板继承

母版页布局

母版页布局定义了所有网页上的通用布局。所有Web应用程序都具有母版页布局,以定义所有Web页面上的通用布局。刀片模板引擎定义了可以由所有网页扩展的主版面。主页页面布局位于/ resources / views / layouts /目录中。

让我们通过一个例子来理解。

  • 首先,在resources / views /目录中创建名为“ layout”的文件夹。
  • 现在,在布局文件夹“ master.blade.php ”中创建一个新文件。
  • 我们在master.blade.php文件中添加以下代码。

master.blade.php



 Master Page Layout 


@yield('content')
@yield('footer')

在上面的代码中,我们使用了@yield指令。 @yield用于显示内容。 @yield('content')显示内容的内容,而@yield('footer')显示页脚的内容。

扩展主版面

  • 现在,我们将在contact.blade.php文件中扩展上述主布局,如下所示:

Contact.blade.php

@extends('layout.master')
@section('content')

Contact Page

@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')
    
@stop

在上面的代码中,我创建了警报框,其中显示消息“ Hello JavaTpoint ”。

输出量

让我们看一下刀片模板的另一个示例。

  • 我们创建一个名为“ post.blade.php ”的新文件。

post.blade.php

@extends('layout.master')
@section('content')

Post Page:

id is :{{$id}}
Password is :{{$password}}
Name is : {{$name}}

@stop

上面的代码定义了内容的部分,我们分别在其中显示id,password和name的值。

  • 现在,我们创建一个名为“ PostController.php ”的控制器。

PostController.php

PostController.php文件中,我们定义了一个名为show_post()的新函数,该函数将数据传递到post.blade.php文件。

  • 最后,我们在web.php文件中定义一条路由。

web.php

Route::get('/post/{id}/{password}/{name}','PostController@show_post');

输出量

到目前为止,我们已经看到post.blade.phpcontact.blade.php文件都在扩展主布局文件。这是主布局的主要优点,即每个文件都可以扩展主文件的布局并添加自己的功能。

使用@parent指令

@parent指令的使用是显示在主版式中定义的部分的内容。

让我们通过一个例子来理解。

  • 首先,我们创建一个主文件。

master.blade.php



 Master Page Layout 


@yield('content')
@section('footer') This is footer @show
  • 现在,我们创建contact.blade.php,在其中扩展上面的master.blade.php文件。
@extends('layout.master')
@section('content')

Contact Page

@stop @section('footer') @parent

this is appended

@stop

在上面的代码中, @parent指令将段落内容添加到页脚节。

输出量