Php Laravel刀片-通过@include或@yield传递变量

Php Laravel刀片-通过@include或@yield传递变量,php,laravel,laravel-4,Php,Laravel,Laravel 4,我需要向包含的刀片文件传递一个变量。我尝试了两种方法;然而,两者都没有成功 将变量title传递到包含的文件: @section('left') @include('modal', ['title' => 'Hello']) @stop 使用@yield并设置部分: @section('left') @include('modal') @section('title') Hello @stop @stop 我使用的是L

我需要向包含的刀片文件传递一个变量。我尝试了两种方法;然而,两者都没有成功

  • 将变量
    title
    传递到包含的文件:

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

    @section('left')
        @include('modal')
            @section('title')
            Hello
            @stop
    @stop
    
  • 我使用的是Laravel4.2。我不知道我想做的事情是否可行,但我想是的。

    根据,包含方式应该是这样做的:

    包括子视图

    @include('view.name')

    您还可以将数据数组传递到包含的视图:

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


    我的直觉是,
    $title
    与嵌套模板中的另一个变量冲突。为了进行故障排除,请尝试暂时将其命名为其他名称。

    将数据数组传递给包含的视图

    @include('view.name', array('some'=>'data'))
    
    然后在view/name文件夹上使用此选项

    {{ $some }}
    

    您是如何尝试输出它的?第一个选项绝对有效。出于某种原因,它不喜欢
    []
    括号。不过,使用
    array('title'=>'hello')
    是可行的。您使用的是什么PHP版本?PHP5.4中引入了速记数组。不过,由于某种原因,它不喜欢
    []
    括号,这是可行的。
    如何产生
    方法-如果它是正确的方法?对不起,输入错误。意思是包含。至于短数组语法,可能您的php版本不支持短数组语法。你用的是哪个版本?是的-你说得对!谢谢这是拉雷维尔首选的做事方式吗?也就是说,大量包含和传递变量以重用模板?这在很大程度上取决于您的用例。对于应该重复的代码,本质上是一个子组件,不包含在每个视图中(fx.a模式、特定于页面的导航等),我肯定会使用子视图。我不确定,但如果您需要这样嵌套它,请尝试
    ['someVar'=>视图('my.view')]
    。我更喜欢像
    @include('viewA',['subview'=>'viewB'])
    这样的操作,在
    viewA.blade.php
    中,使用
    @include($subview)
    。不过只是随地吐痰而已。