Laravel 5 - 多次使用模板

时间:2015-04-15 17:11:21

标签: php laravel blade

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

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

我尝试过这样的事情:

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

但它没有帮助。

2 个答案:

答案 0 :(得分:1)

您可以将第二个参数传递给@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
])

希望这有帮助

答案 1 :(得分:0)

只需使用 @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')