繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM