Laravel 4将数据传递给@include

时间:2013-06-17 13:24:58

标签: laravel laravel-4

我有一个名为admin.users的视图。在该视图中,我使用@include指令包含页眉和页脚。我写了所有的观点 - 包括routes.php中的东西,所以对于admin.users来说是:

Route::get('users', function() {
    // ...
    return View::make('admin.users')->with('num', $usersNum);
}

在users.blade.php中:

@include('admin.partials.header')
// ....
@include('admin.partials.footer')

是否可以将“users num”传递给标题视图以显示该变量?这是我合并视图的好方法,因为我读到了控制器布局,但实际上我决定只有rest控件,而我只在routes.php中包含视图(比如加载静态标记,然后通过与服务器通信) AJAX)

2 个答案:

答案 0 :(得分:3)

查看'ViewComposers'(http://laravel.com/docs/responses#view-composers)。这是与您的视图共享数据并保持路由文件清洁的好方法。

在global.php(或任何其他地方)确实添加:

View::composer('admin.users', function($view)
{
    // Do your $usersNum logic here
    ...

    $view->with('num', $usersNum);
});

如果您希望此数据在admin.dashboard中也可用,请重写为:

View::composer(array('admin.users', 'admin.dashboard'), function($view)

答案 1 :(得分:1)

正如我在评论中所述(以及似乎解决了您的问题),您应该在其中创建包含页眉和页脚的admin.template视图,然后使用@extends('admin.template')开始您的观看。