好的,我得到了这个'main'刀片模板和laravel Collection对象$projects
,并传递给视图
...
<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('ProjectController@index', $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
循环对外部作用域的变量没有影响…还是我错了?
如果我理解正确,在你的循环,php创建局部变量$last_id
,它不使用你的全局变量$last_id
。在您的示例中,您运行循环,创建局部变量$last_id
并将$project->id
的值放入其中。全局变量$last_id
没有更改。循环完成后,从全局作用域输出$last_id
,它没有改变,所以它等于0,正如您定义的那样