Laravel视图,布局和变量传输

时间:2013-04-03 13:01:21

标签: php view laravel blade

我的laravel视图结构是这样的:

 /views/layouts/default.blade.php

包含

<html>
@yield('header')
<body>
    @yield('navigation')
    @yield('content')
    @yield('footer')
</body>

跟随

/views/partials/footer.blade.php
/views/partials/header.blade.php
/views/partials/navigation.blade.php

在我的标题视图中,我有一个var $ title 我正试图在主页上动态设置它。

所以在我的视图中位于/pages/index.blade.php 我得到了这个

@layout('layouts.default')
@section('header')
  @render('partials.header')
@endsection

@section('navigation')
  @render('partials.menu')
@endsection

@section('footer')
  footer
@endsection

@section('content')
@endsection

我在某处读到标题var应该通过控制器传递但是我不能这样做:(

我尝试了这个没有任何成功。$ title在标题部分视图中未定义..

class Home_Controller extends Base_Controller {
    public $layout = 'layouts.default';
    public function action_index()
    {
        $this->layout->nest('header', 'home.index')->with('title', 'James');
        $posts = Post::with('author')->all();
        return View::make('home.index');

    }

1 个答案:

答案 0 :(得分:1)

在Laravel的Blade模板引擎中,您可以使用@render@include来渲染视图。

但是,如果使用@render,渲染的视图将不会从当前视图继承数据。因此,如果您需要继承变量等,则需要使用@include。有关详细信息,请参阅docs on templating