Laravel 5 - 多次使用模板

Laravel 5 - multiple use of template

在 Laravel 5 中,我正在为模板创建一个小的解决方法。

在这个模板中,有小部件,我想制作这个小部件的模板,然后为它生成内容和标题。

我试过这样的方法:

@section('widget-title', 'sdf')
@include('admin.core.widget')
@section('widget-title', 'sdfff')
@include('admin.core.widget')

但这并没有帮助。

您可以将第二个参数传递给 @include(),其中包含您想要发送到视图的任何数据,如 blade documentation.

中所述
@include('admin.core.widget', ['widget-title' => 'sdf'])
@include('admin.core.widget', ['widget-title' => 'sdfff'])

然后您可以使用 $widget-title 访问视图中的数据。

您还可以将多个变量传递给视图,如下所示:

@include('admin.core.widget', [
    'widget-title' => 'sdf',
    'widget-content' => 'lorem ipsum...'
])

如果您想在 $widget-content 变量中包含变量,您可以使用标准内联 PHP:

<?php $content = 'lorem ipsum ' . $extra-content . ' dolor...'; ?>

@include('admin.core.widget', [
    'widget-title' => 'sdf',
    'widget-content' => $content
])

希望对您有所帮助

只需使用 @overwrite 而不是 @endsection 或 @stop。

假设您有一个 widget.blade.php,其基本布局如下:

<h2>
    @yield('widget-title')
</h2>
@yield('widget-content')

还有几个小部件,例如 widget-one.blade.phpwidget-two.blade.php、...

@extends('widget')

@section('widget-title')
    Some title
@overwrite

@section('widget-content')
    Some content
@overwrite

现在您可以@include('widget-one')