【问题标题】:Laravel Blade: Getting access to a variable in a nested partial from a parent viewLaravel Blade:从父视图访问嵌套部分中的变量
【发布时间】:2015-06-11 23:41:00
【问题描述】:

我的父视图如下所示:
show.blade.php

@include('inquiries.partials.inquiries')

它使用以下部分:
inquiries.blade.php

<ul>
    @foreach($inquiry as $key => $item)
        <li>
            @include('inquiries.partials.inquiry')
        </li>
    @endforeach
</ul>

其中使用了另一个部分:
inquiry.blade.php

<div class="row">
    <div class="col-xs-10">
        <div class="data"> ... </div>
    </div>
    <div class="col-xs-2 text-right">
         @yield('inquiry.toolbar', '')
    </div>
</div>

show.blade.php 我想为 inquiry.blade.php 定义 inquiry.toolbar 部分,但是我需要访问inquiries.blade.php 文件中的 $key 变量,如下所示:

@include('inquiries.partials.inquiries')

@section('inquiry.toolbar')
{!! button_delete([
    'route' => ['inquiries.items.destroy', $key]
]) !!}
@stop

但是,上面的代码不起作用(我得到“未定义的变量:键”)。
有可能吗?

【问题讨论】:

    标签: php laravel blade


    【解决方案1】:

    您可以在包含视图时传递数据,如下所示:

    <ul>
        @foreach($inquiry as $key => $item)
            <li>
                @include('inquiries.partials.inquiry', compact('key'))
            </li>
        @endforeach
    </ul>
    

    它将在您的视图中可用。

    查看the docs了解更多信息。

    【讨论】:

    • 这会将变量传递给子视图。但是我想使用传递给子视图的数据覆盖父视图中的部分。
    • @Mike 在这种情况下,您应该检查this answer。您可以在控制器上使用view()-&gt;share() 使变量(如$inquiry)在您的所有视图中可用。它可能不是你想要的,但它确实有效。
    • 感谢您的帮助,这正是我所需要的。
    猜你喜欢
    • 2013-06-01
    • 2018-06-10
    • 2017-08-31
    • 2018-11-04
    • 2015-10-02
    • 1970-01-01
    • 2018-07-03
    • 1970-01-01
    • 2016-05-20
    相关资源
    最近更新 更多