刀片模板(Laravel)会覆盖问题

时间:2014-08-20 03:20:14

标签: php laravel laravel-4 blade

我有一个"主人"具有部分的布局:@yield('other-scripts')

我在另一个视图(especie.blade.php)中使用此主模板:

@extends('layouts.master')

@include('layouts.editarEspecie')

@section('other-scripts')
    {{ HTML::script('js/lightbox.js') }}
@stop

layouts.editarEspecie内,@section('other-scripts')也会被覆盖:

@section('other-scripts')
    {{ HTML::script('js/chosen.jquery.js') }}
    {{ HTML::script('js/chosenScriptModal.js') }}
    {{ HTML::script('js/scripts.js') }}
@stop

问题是@include('layouts.editarEspecie')首先出现,因此@section('other-scripts')永远不会在especie.blade.php内添加该部分。

我能做什么才能添加这两个部分并以此结尾?

{{ HTML::script('js/chosen.jquery.js') }}
{{ HTML::script('js/chosenScriptModal.js') }}
{{ HTML::script('js/scripts.js') }}
{{ HTML::script('js/lightbox.js') }}

P.S。:我这样做是因为lightbox.js总是必要的,但可能并不总是需要chosen.jquery.js, chosenScriptModal.js, scripts.js

2 个答案:

答案 0 :(得分:0)

内部layouts.editarEspecie没有“部分” - 只需要这个:

{{ HTML::script('js/chosen.jquery.js') }}
{{ HTML::script('js/chosenScriptModal.js') }}
{{ HTML::script('js/scripts.js') }}

然后将包括这3行。

答案 1 :(得分:0)

  

问题是,我不希望这三条线总是进去   layouts.editarEspecie,只要满足某些条件(未显示)   这里)

嗯...我知道它就像有史以来最快的东西但是如果它可以随时都是PHP

<?php
if (condition)
 {
 ?>
{{ script here}}
<?php
}
else
{}
?>

很抱歉懒惰的解释,但我相信你会得到提示