1

我无法理解变量在 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'] == '联系人')

{ //做一些事情,它有效 }

@yield('内容')

联系.BLADE.PHP:

if ($data['page'] == '联系人')

{// 做一点事。ErrorException 未定义变量:数据}

我错过了什么还是已知的限制?

谢谢!

4

1 回答 1

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);

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

希望它可以帮助某人。

于 2013-11-04T15:49:21.417 回答