[英]Foreach scope variable in laravel blade template
好的,我得到了带有laravel Collection对象(称为$projects
“主”刀片模板,并将其传递给视图
'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('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
并将$last_id
$project->id
值放入其中。 您的全局变量$last_id
。 循环结束后,从全局范围输出$last_id
,该范围没有变化,因此它等于0,如您所定义
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.