【问题标题】:Correctly extending of section in Blade刀片中的正确扩展部分
【发布时间】:2015-10-26 15:59:36
【问题描述】:

我有主布局

ma​​ster.blade.php

@yield('content')

column.blade.php

@extends('master')

@section('content')
   <div class="row">
       <div class="col-md-3">
           @yield('column')
       </div>

       <div class="col-md-9">
           @yield('content')
       </div>
   </div>
@stop

当我尝试扩展 column.blade.php 并将我的内容放入“内容”部分时

admin.blade.php

@extends('column')

@section('column')
    content in column section
@stop

@section('content')
    content in col-md-9 div
@stop

我有一个奇怪的行为。我的内容放在 master.blade.php 中!!!我做错了什么?

如果我添加@parent,我会得到双数据(首先是 column.blade,然后是 master.blade)

如何正确覆盖或扩展该部分?

【问题讨论】:

  • 我不是 100% 确定,但我认为您不能延长两次 - 这可能是您的问题。
  • @Repox 您可以根据需要扩展任意多次,但是对 2 个产量(主目录中的内容和列中的内容)使用相同的名称会带来麻烦。如果我没记错的话,引擎会一直向上运行并更新一组命名部分,这意味着主内容部分会覆盖列中的部分。修复使用不同的名称。
  • @AbstractChaos 现在我解决了你说的问题。但我们想了解为什么不能按上述方式工作。

标签: php laravel-5 blade


【解决方案1】:

在您的column.blade.php 文件中,您已经定义了@section('content'),并且在您的admin.blade.php 文件中,您正确地扩展了column.blade.php

但是在您的admin.blade.php 文件中,您定义了一个新的@section('content')。这个新部分会覆盖 column.blade.php 文件中的 @section('content')

您要做的是将@parent 添加到admin.blade.php 文件中的@section('content')。这将扩展列文件中的内容部分。

【讨论】:

    猜你喜欢
    • 2015-09-19
    • 2016-04-18
    • 2018-08-11
    • 2014-09-15
    • 1970-01-01
    • 1970-01-01
    • 2019-11-03
    • 1970-01-01
    • 2023-04-08
    相关资源
    最近更新 更多