Templates 使用刀片的继承模板

Templates 使用刀片的继承模板,templates,laravel,laravel-4,blade,Templates,Laravel,Laravel 4,Blade,我在使用刀片模板继承时遇到问题。所以我有了我的主模板:/layouts/main.blade.php @section('oneNews') <div class="row"> <div class="large-12 columns pad_0"> <div class="container"> <div id="da-slider" class="da-slider"> @foreac

我在使用刀片模板继承时遇到问题。所以我有了我的主模板:/layouts/main.blade.php

@section('oneNews')
<div class="row">
  <div class="large-12 columns pad_0">
      <div class="container">
          <div id="da-slider" class="da-slider">
            @foreach($aTopNews as $topNews)
              <div class="da-slide">
                  <h2>{{ $topNews['title'] }}</h2>
                  <p>{{ $topNews['content'] }}.</p>
                  <a href="/news/view/{{ $topNews['id'] }}" class="da-link">Read</a>
                  <div class="da-img">{{ HTML::image($topNews['image']) }}</div>
              </div>
              @endforeach
              <nav class="da-arrows">
                  <span class="da-arrows-prev"></span>
                  <span class="da-arrows-next"></span>
              </nav>
          </div>
      </div>
  </div>
</div>

但是我得到了一个错误:“Undefined variable:aTopNews”,请帮助我首先,使用模板继承,您不返回布局视图,而是返回内容视图,Laravel的刀片引擎将负责获取和呈现正确的布局:这就是文件开头的
@extends
的目的。因此,在控制器中,您应该具有:

return View::make('content'); // assuming content.blade.php contains the code in your example
模板继承的一点是它不会将变量从子(内容)视图传递到布局视图。因此,使用('aTopNews',$aTopNews)执行
View::make('content')->只会使
aTopNews
可用于
content
视图,而不是它扩展的
layouts.main
视图。要使其在布局视图中可用,可以使用
view::share()
,这使变量可用于所有视图:

View::share('aTopNews',  \News::where('type', '=', '1')->get());
此外,为了使节继承起作用,在布局文件中,您需要使用
@show
结束
@section('onews')


Laravel文档很好地解释了如何工作。

调用视图时是否定义了
$aTopNews
?请向我们显示您的控制器代码。您是否检查了呈现的模板是否正确?在返回控制器中的视图之前,我编辑了我的问题,包括此行
dd(\News::where('type','=','1')->get())并告诉我们打印出的内容。
return View::make('content'); // assuming content.blade.php contains the code in your example
View::share('aTopNews',  \News::where('type', '=', '1')->get());