Templates 使用刀片的继承模板
我在使用刀片模板继承时遇到问题。所以我有了我的主模板:/layouts/main.blade.phpTemplates 使用刀片的继承模板,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
@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());