📜  拉拉维尔 |刀片模板继承

📅  最后修改于: 2022-05-13 01:56:49.663000             🧑  作者: Mango

拉拉维尔 |刀片模板继承

模板引擎使编写前端代码更容易,并有助于重用代码。所有刀片文件的扩展名为*.blade。 PHP在 Laravel 中,大多数时候前端文件存储在resources/views目录中。 Blade 文件支持PHP ,编译成普通PHP并缓存在服务器中,这样当用户再次访问页面时,我们就不必再做额外的编译模板的工作,因此使用 Blade 与使用PHP文件一样高效自己在前端。

模板继承:在大多数现代网页中,所有网页都遵循固定的主题。因此,能够重用您的代码非常有效,这样您就不必再次编写代码中的重复部分,Blade 极大地帮助您实现了这一点。

  • 定义布局:让我们用一个例子来做,并创建一个名为layout.blade 的文件。resources/views目录下的PHP文件如下所示:
    
    
    
        @yield('title')
    
    
        
            @yield('content')     

    现在,在上面给出的代码中,我们使用@yield指令告诉刀片我们将在子刀片页面中进一步扩展这部分。此外,请注意,每个 yield 指令的名称都类似于第一个的标题和第二个的内容。这些名称稍后将在子页面中使用,以说明此部分已在此处扩展。

  • 扩展布局:让我们现在也这样做,并在名为mypage.blade资源/视图目录中创建一个页面。 PHP如下所示:
    @extends('layout')
      
    @section('title')
        Child Page
    @endsection
      
    @section('content')
        

    My first page with Blade Inheritance.

    @endsection

    在这段代码中,我们首先使用@extends指令,它告诉我们从哪个刀片页面继承这个页面。在我们的例子中,它将是布局,因为我们将从layout.blade 继承此页面。 PHP ,我们之前创建的。此外,我们使用@section指令来扩展父刀片文件的每个@yield指令。正如我们在上面的代码中所做的那样,我们必须在@section指令中告知我们在此处扩展的每个@yield指令的名称。确保在编写代码后使用@endsection结束指令。所有@yield部分都将替换为子刀片页面中的相应代码。完成这项工作的最后一件事是在您的路线/网络中添加如下所示的路线。 PHP

    Route::get('/mypage', function() {
        return view('mypage');
    });
    

    我们刚刚创建了一条到/mypage的路由,并在回调函数中为mypage.blade 提供服务。 PHP请注意,Blade 会自动在resources/views目录中查找文件。

  • 输出:

    在输出中,您可以看到@yield('title')是如何替换为子页面的, @yield('content')是如何替换为带有 Blade Inheritance 的我的第一页的。