Представление Laravel, макет и передача переменных

моя структура представления laravel выглядит следующим образом:

 /views/layouts/default.blade.php

содержащий

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

following by

/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');

    }

person Klaitos    schedule 03.04.2013    source источник


Ответы (1)


В механизме шаблонов Laravel Blade вы можете использовать @render или @include для рендеринга представлений.

Однако, если вы используете @render, визуализированный вид не будет наследовать данные от текущего вида. Итак, если вам нужно наследовать переменные и т. д., вам нужно использовать @include. Дополнительные сведения см. в документах по шаблонам.

person Adrenaxus    schedule 03.04.2013