使用Blade无法在Laravel 4中查看内容视图中的变量

时间:2013-11-04 15:27:45

标签: laravel blade

我很难理解变量在Laravel模板系统Blade中的工作原理。 我在控制器中设置变量,我可以在我制作的第一个视图中看到它们,但不能在下一个视图中看到它们。

我正在使用一个master.blade.php文件,该文件包含页面的页眉和页脚,在中间产生内容。我可以在master.blade.php文件中使用该变量,但不能在内容刀片文件中使用(变量undefined)。

例如,对于联系页面:

控制器功能:

  

$ 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未定义的变量:data}

我错过了什么或者这是一个已知的限制吗?

谢谢!

1 个答案:

答案 0 :(得分: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);

这样就可以将变量传递给布局,也可以传递给特定的视图。

希望它有所帮助。