在Laravel的Blade中循环变量

时间:2017-12-12 12:40:15

标签: php laravel loops templates blade

我在Laravel的Blade模板中做了很多循环,有时,我必须记住一些条件,比如$ found或$ needToSave,就像那样。

这是一个小例子:

No such module ''

现在,<?php $found = false; ?> @foreach ($users as $user) @foreach ($user->posts as $post) @if ($post->something == "value") <?php $found = true; ?> @endif @if ($loop->parent->last) @if ($found) I really found something! Do something special! @endif @endif @endforeach @endforeach 部分有更好的方法吗? 对我来说,这似乎是不洁净的,我正在寻找一个更清洁的解决方案,它与模板引擎一起发挥作用。我知道<?php $found = false|true ?>,但这对我来说似乎很难看。有没有什么可以在引擎中分配本地变量?

干杯

1 个答案:

答案 0 :(得分:5)

如果以后不需要变量,可以将代码重构为:

@foreach ($users as $user)
    @foreach ($user->posts as $post)
        @if ($loop->parent->last && $post->something === 'value')
            I really found something! Do something special!
        @endif
    @endforeach
@endforeach

如果您将来再使用它,可以使用@php@endphp

  

在某些情况下,将PHP代码嵌入到视图中非常有用。您可以使用Blade @php指令在模板中执行普通PHP块

https://laravel.com/docs/5.5/blade#php