3

我的 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');

    }
4

1 回答 1

1

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

但是,如果您使用@render,渲染的视图将不会从当前视图继承数据。因此,如果您需要继承变量等,则需要使用@include. 有关更多信息,请参阅有关模板的文档

于 2013-04-03T15:28:03.163 回答