2015-11-26 48 views
6

我需要将变量传递给包含的Blade文件。我尝试过这两种方式;但是,也没有成功。Laravel Blade - 通过@include或@yield传递变量

  1. 传递变量,title,到包含的文件:

    @section('left') 
        @include('modal', ['title' => 'Hello']) 
    @stop 
    
  2. 使用@yield并设置部分:

    @section('left') 
        @include('modal') 
         @section('title') 
         Hello 
         @stop 
    @stop 
    

我使用Laravel 4.2。我不知道我正在尝试做什么是可能的,但我想象它是。

+0

你如何试图输出呢?第一个选项绝对有效。 – Tim

+0

由于某些原因,它不喜欢'[]'括号。不过,使用'array('title'=>'hello')'可行。 – monster

+0

你使用什么PHP版本?速记数组在PHP 5.4中引入。 – Tim

回答

7

按照documentation,该include三通应该是做的方式:包括子视图

@include('view.name')

您也可以传递数据的数组所包括的视图:

@include('view.name', array('some'=>'data'))

我的预感是$title与嵌套模板中的另一个变量冲突。只是为了排除故障,请尝试暂时将其称为别的。

+0

虽然这样做,但由于某种原因,它不喜欢'[]'方括号。 “yield”方式如何工作 - 如果是正确的方式? – monster

+0

对不起,错字。意思'包括'。至于短阵列语法,也许你的PHP版本不支持短阵列语法。你正在使用哪个版本? – Dencker

+0

是的 - 你是对的!谢谢。这是*首选* Laravel的做事方式?也就是说,很多包含和传递变量来重新使用模板? – monster

2

数据传递的数组包含的观点

@include('view.name', array('some'=>'data')) 

然后使用这个视图/文件夹名称

{{ $some }}