Laravel 8 繼承布局

2021-07-17 16:47 更新

在定義一個(gè)子視圖時(shí),使用 Blade 的 @extends 指令指定子視圖要「繼承」的視圖。擴(kuò)展自 Blade 布局的視圖可以使用 @section 指令向布局片段注入內(nèi)容。就如前面的示例中所示,這些片段的內(nèi)容將由布局中的 @yield 指令控制顯示:

<!-- Stored in resources/views/child.blade.php -->

@extends('layouts.app')

@section('title', 'Page Title')

@section('sidebar')
    @parent

    <p>This is appended to the master sidebar.</p>
@endsection

@section('content')
    <p>This is my body content.</p>
@endsection

在這個(gè)示例中, sidebar 片段利用 @parent 指令向布局的 sidebar 追加(而非覆蓋)內(nèi)容。 在渲染視圖時(shí),@parent 指令將被布局中的內(nèi)容替換。

技巧:和上一個(gè)示例相反,這里的 sidebar 片段使用 @endsection 代替 @show 來結(jié)尾。 @endsection 指令僅定義了一個(gè)片段, @show 則在定義的同時(shí) 立即 yield 這個(gè)片段。

@yield 指令還接受一個(gè)默認(rèn)值作為第二個(gè)參數(shù)。如果被 「yield」的片段未定義,則該默認(rèn)值被渲染:

@yield('content', View::make('view.name'))

Blade 視圖可以用 view 輔助函數(shù)從路由中返回:

Route::get('blade', function () {
    return view('child');
}); 
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號