laravel刀片模板中的Foreach范围变量

时间:2016-09-30 10:02:28

标签: php laravel blade

好的,我得到了这个'主要'带有laravel Collection对象的刀片模板,名为$projects并传递给视图

' main.blade.php'

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

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

和&#39; partials._project.blade.php&#39;模板看起来像这样

@foreach($projects as $project)

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

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

问题在于,此时<h4>{{ $last_id }}</h4>我得到正确的项目ID值(因此最后一个块显示6的值)

但是在<div>{{ $last_id }}</div>的main.blade.php中(循环结束后)我得到0(初始值)

我猜刀片@foreach循环对外部范围的变量没有影响...... 或者我错了吗?

1 个答案:

答案 0 :(得分:-1)

如果我理解正确,在你的循环中,php创建局部变量$last_id,它不会使用你的全局变量$last_id。在您的情况下,您运行循环,创建局部变量$last_id并从$project->id放置值。您的全局变量$last_id未被更改。在循环完成后,从全局范围输出$last_id,这不会改变,因此它等于0,正如您所定义的那样