【问题标题】:Laravel 4 passing data to @includeLaravel 4将数据传递给@include
【发布时间】:2013-10-07 10:53:33
【问题描述】:

我有一个名为 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 中包含视图(例如加载静态标记,然后通过阿贾克斯)

【问题讨论】:

  • 嗯,实际上我发现 @include('admin.partials.header', array('usersNum' => $num)) 有效,但我不确定这是否是一个好方法因为我在文档中没有找到有关此功能的任何信息..
  • 问题:为什么不创建一个包含页眉和页脚的admin.template 视图,并以@extends('admin.template') 开始您的视图?这并不能解决您的问题,但更接近“laravel 方式”(tm)。
  • 谢谢。我制作了“admin/layout.blade.php”,并使用 composer 将数据传递给该视图!
  • 很高兴它起作用了,你的代码现在更干净和“laraveler”了。如果您想接受,我发布了我的评论作为答案。谢谢!

标签: laravel laravel-4


【解决方案1】:

看看“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)

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2019-08-13
      • 2013-01-07
      • 1970-01-01
      • 2013-08-17
      • 2014-07-02
      • 2014-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多