因此必须有一个简单的方法...在我的网站上有多种模式,具体取决于页面。我已经创建了一个可以扩展的模态模板。但是,我在页面上包含的最后一个模态最终会“接管”其余的模式,所以我的所有模态都会以最后一个包含的相同部分结束。我怎样才能使每个扩展名对于扩展它的文件是唯一的?
正在发生的事情的例子:
//template.blade.php
<htmls and stuff>
@yield('section_1')
@yield('section_2')
</htmls and stuff>
//Modal 1
@extends('template')
@section('section_1')
Some words
@stop
@section('section_2')
More words
@stop
//Modal 2
@extends('template')
@section('section_1')
Rabbit
@stop
@section('section_2')
Stew
@stop
而不是加载两个独特的模态,我最终得到了两个充满兔子炖肉的模态。
答案 0 :(得分:4)
我个人会在这个例子中使用includes,除非你的章节中有标记。如果它只是文本你可以做这样的事情:
//template.blade.php
<htmls and stuff>
{{ $section1 }}
{{ $section2 }}
</htmls and stuff>
//Modal 1
@include('template', ['section1' => 'Some words', 'section2' => 'More words'])
//Modal 2
@include('template', ['section1' => 'Rabbit', 'section2' => 'Stew'])
答案 1 :(得分:4)
尝试使用@overwrite
命令代替@endsection
示例:
@section('stuff')
Stuff goes here...
@overwrite
来源:https://github.com/laravel/framework/issues/1058#issuecomment-17194530
答案 2 :(得分:-1)
我遇到了同样的问题。我真的也想使用Blade模板,但最终使用php include,即使使用基本的html标记。
//Modal 1
@include('layout.template', array(
'section1' =>
'<h1>Modal 1</h1><p><b>Some</b> words</p>',
'section2' =>
'<p>Some <u>words</u></p>'
))
//Modal 2
@include('layout.template', array(
'section1' =>
'<h1>Modal 2</h1><p><b>Some</b> words</p>',
'section2' =>
'<p>Some <u>words</u></p>
<a href="http://stackoverflow.com"></a>'
))
标记一切正常,包括链接。我遇到麻烦的地方是我想使用include 里面的包含数组,我不明白。这就是我想使用刀片模板的原因。