个性化阅读
专注于IT技术分析

Laravel模板继承

点击下载

本文概述

母版页布局

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

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

  • 首先, 在resources / views /目录中创建名为“ layout”的文件夹。
  • 现在, 在布局文件夹“ master.blade.php”中创建一个新文件。
  • 我们在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>

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

扩展主版面

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

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');
});

输出量

Laravel模板继承

我们还可以在contact.blade.php文件中添加javascript代码。假设我在contact.blade.php文件中添加了以下代码。

@section('footer')
<script> alert("Hello srcmini") </script>	
@stop

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

输出量

Laravel模板继承

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

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

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”的控制器。

PostController.php

<?php

namespace 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文件中定义一条路由。

web.php

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

输出量

Laravel模板继承

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

使用@parent指令

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

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

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

master.blade.php

<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模板继承

赞(0)
未经允许不得转载:srcmini » Laravel模板继承

评论 抢沙发

评论前必须登录!