Laravel 4: представление внутри макета с данными

Я пишу простое приложение, которое полагается только на несколько маршрутов и представлений. Я установил общий макет и успешно вложил шаблон, используя следующее.

routes.php

View::name('layouts.master', 'master');
$layout = View::of('master');

Route::get('/users', function() use ($layout)
{
    $users = Users::all()
    return $layout->nest('content','list-template');
});

master.blade.php

<h1>Template</h1>
<?=$content?>

list-template.php

foreach($users as $user) {
   echo $user->title;
}

Как передать результаты запроса $ users в мой главный шаблон, а затем в list-Temple.php?

Спасибо


person Tom    schedule 09.07.2013    source источник


Ответы (1)


->nest позволяет использовать третий аргумент для массива данных:

   Route::get('/users', function() use ($layout)
    {
        $users = Users::all()
        return $layout->nest('content','list-template', array('users' => $users));
    });

Также в вашем файле master.blade.php - измените его на это:

<h1>Template</h1>
@yield('content')

list-template.blade.php ‹- обратите внимание на имя файла лезвия:

@extends('layouts.master')

@section('content')
<?php
  foreach($users as $user) {
     echo $user->title;
   }
?>
@stop
person Laurence    schedule 09.07.2013
comment
Большое спасибо. однако теперь у меня есть следующая ошибка. Аргумент 3, переданный в Illuminate \ View \ View :: nest (), должен быть массива типа, заданного объекта. Вызывается в routes.php - person Tom; 09.07.2013
comment
Я отредактировал его, чтобы передать массив в качестве третьего аргумента, а не объекта, который должен устранить эту ошибку. - person fideloper; 09.07.2013
comment
На самом деле, это редактирование требует рецензирования. Вы можете изменить $users на array('users' => $users) в третьем параметре метода nest(): return $layout->nest('content','list-template', array('users' => $users)); - person fideloper; 09.07.2013