子视图中的未定义变量

时间:2014-08-13 18:22:55

标签: laravel laravel-4 blade

我创建了一个主布局,并以这种方式将其扩展到子视图:

master.blade.php(简短版):

<body>
@section('content')
@foreach($articles as $article)
  {{ $article->title }}
@endforeach
@show
</body>

然后是一个名为child.blade.php的儿童视图:

@extends('master')
@section('content')
  <p>Some static content</p>
@stop

但是,当我访问带有child.blade.php的页面时,我收到错误:

Undefined variable: articles (View: /app/views/master.blade.php)

为什么我收到此错误?我的child.blade.php中没有这个变量,所以我猜 - 默认情况下,子视图会继承master的变量吗?但为什么?我没有使用@parent

1 个答案:

答案 0 :(得分:0)

你真正想要的是View Composer。这样,您可以在多个视图之间共享数据,而无需重复自己。在您的情况下,只要您的child.blade.php视图将被渲染,您将要添加要传递的其他数据。

阅读更多文档:View Composers

如果您不想使用View composer,您需要将文章传递给您的child.balde.php