在带有 Blade 的 Laravel 4 中看不到内容视图中的变量

Posted

技术标签:

【中文标题】在带有 Blade 的 Laravel 4 中看不到内容视图中的变量【英文标题】:Can't see variable inside content view in Laravel 4 with Blade 【发布时间】:2013-11-15 06:29:01 【问题描述】:

我无法理解变量在 Laravel 模板系统 Blade 中的工作方式。 我在控制器中设置了变量,我可以在我创建的第一个视图中看到它们,但在下一个视图中看不到。

我正在使用包含页眉和页脚的 master.blade.php 文件,在中间生成内容。我可以在 master.blade.php 文件中使用变量,但不能在内容刀片文件中使用(变量未定义)。

例如,对于联系页面:

控制器功能:

$this->data['page'] = "contact";

$this->layout->content = View::make('pages.contact');

$this->layout->with('data', $this->data);

MASTER.BLADE.PHP:

if ($data['page'] == 'contact')

//做点什么,成功了

@yield('内容')

CONTACT.BLADE.PHP:

if ($data['page'] == 'contact')

// 做某事。 ErrorException 未定义变量:数据

是我遗漏了什么还是已知的限制?

谢谢!

【问题讨论】:

【参考方案1】:

问题是我只将变量传递给布局:

代替:

$this->layout->content = View::make('pages.contact');

$this->layout->with('data', $this->data);

我修复了它:

$this->layout->content = View::make('pages.contact', array('data' => $this->data));

$this->layout->with('data', $this->data);

通过这种方式将变量传递给布局,也传递给特定的视图。

希望对某人有所帮助。

【讨论】:

以上是关于在带有 Blade 的 Laravel 4 中看不到内容视图中的变量的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 4 Blade 和 Hogan.js 语法

Laravel - Blade:@include 一个带有自动“文件名注释”的模板

在 Laravel 4 / Blade 中将布局分解为部分

带有 Vue js 组件和 Googlebot 的 Laravel Blade 模板

Laravel 和 Vue 在 Blade 中从组件 1 向组件 2 发送数据

Laravel 4 Blade 模板文档