在Laravel 5中,我正在为模板创建一个小解决方法。
在这个模板中,有小部件,我想制作这个小部件的模板,然后为它生成内容和标题。
我尝试过这样的事情:
@section('widget-title', 'sdf')
@include('admin.core.widget')
@section('widget-title', 'sdfff')
@include('admin.core.widget')
但它没有帮助。
答案 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.php
,widget-two.blade.php
,...
@extends('widget')
@section('widget-title')
Some title
@overwrite
@section('widget-content')
Some content
@overwrite
现在你可以@include('widget-one')
。