1

我有一个名为 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”传递给标题视图以显示该变量?我组合视图的方式是一个好习惯吗,因为我阅读了控制器布局,但实际上我决定只有休息控制器,而我只在 routes.php 中包含视图(比如加载静态标记,然后通过阿贾克斯)

4

2 回答 2

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)
于 2013-06-17T18:23:55.830 回答
0

正如我在评论中所说(以及似乎已经解决了您的问题),您应该创建一个admin.template包含页眉和页脚的视图,并以@extends('admin.template').

于 2013-06-17T15:03:00.073 回答