2016-09-30 42 views
0

確定我得到了與laravel集合對象這個「主」刀模板稱爲$projects並傳遞給視圖的foreach範圍變量

「main.blade.php」

... 
<div id="projects-list"> 
    <?php $last_id = 0; ?> 
    @include('partials._project') 
</div> 

<div>{{ $last_id }}</div> 
... 

和「 partials._project.blade.php」模板看起來像這樣

@foreach($projects as $project) 

    <?php $last_id = $project->id ?> 

    <a href="{{ action('[email protected]', $project->uri) }}"> 
     <h4>{{ $last_id }}</h4> 
     <img src="{{ $project->getProjectImage($project->poster) }}"> 
    </a> 
@endforeach 

的問題是,在這一點上<h4>{{ $last_id }}</h4>我得到項目ID的正確值(所以最後一塊顯示6值)

但在我main.blade.php在<div>{{ $last_id }}</div>(後循環結束),我得到0(初始值)

我猜刀片@foreach循環對外部沒有influance範圍的變量... 還是我錯了?

+0

如何用'partials._project.blade.php'鏈接'main.blade.php' '。如果你從控制器傳遞'$ last_id',你可以訪問! –

+0

是'partials._project.blade.php'文件名? –

回答

0

如果我理解正確,在你的循環中,php創建局部變量$last_id,它不使用你的全局變量$last_id。在你的情況下,你運行循環,創建本地變量$last_id,並從$project->id放置值。您的全局變量$last_id未被更改。循環完成後,從全局範圍輸出$last_id,這是不變的,所以它等於0,就像你定義的那樣

+0

好吧,那麼我該如何解決這個問題?.. 我需要爲循環內部的外部變量賦值,然後在循環外獲得該值。 或者在刀片上是不可能的? –

+0

嘗試在'$ GLOBALS'數組中分配變量。在你的main.blade中'<?php $ GLOBALS ['last_id'] = 0; ?>'而不是'<?php $ last_id = 0; ''在你的循環中'<?php $ GLOBALS ['last_id'] = $ project-> id?>'然後'{{$ GLOBALS ['last_id']}}' – heavymetal91