2015-04-07 107 views
4

我父視圖看起來是這樣的:
show.blade.phpLaravel刀片:獲取嵌套部分從父視圖訪問變量

@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.toolbarinquiry.blade.php,但是我需要訪問$關鍵可變從inquiries.blade.php文件,像這樣:

@include('inquiries.partials.inquiries') 

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

然而,上面的代碼不工作(I克等「未定義變量:鍵」)。
這可能嗎?

回答

4

包括視圖時,像這樣可以傳遞數據:

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

這將是適用於您的看法。

檢查the docs瞭解更多信息。

+0

這將變量傳遞給子視圖。不過,我想使用傳遞給子視圖的數據覆蓋父視圖中的部分。 – Mike

+1

@Mike在這種情況下,你應該檢查[這個答案](http://stackoverflow.com/a/19384105/804741)。你可以在你的控制器上使用'view() - > share()'在你所有的視圖上創建一個變量(比如'$ inquiry')。它可能不是你想要的,但它的工作原理。 – Ravan

+0

感謝您的幫助,這正是我所需要的。 – Mike