Laravel 4在提供计数变量时从foreach循环中添加数字?

Ini*_*igo 13 laravel-4

我将数组$ cats传递给我的laravel模板视图.它是来自数据库事务的多维数组,包含类别数据.所以它将包含如下数据:

$cat[0]['id'] = 1;
$cat[0]['name'] = 'First Category';
Run Code Online (Sandbox Code Playgroud)

等等.在我的刀片模板中,我有以下代码:

            {{ $i=0 }}
            @foreach($cats as $cat)

                    {{ $cat['name'] }}<br />

                {{ $i++ }}

            @endforeach
Run Code Online (Sandbox Code Playgroud)

哪个输出:

0 First Category
1 Second Category
2 Third Category
Run Code Online (Sandbox Code Playgroud)

注意类别名称前面的数字.他们来自哪里?这是一些聪明的Laravel技巧吗?似乎当您包含计数器变量时,它们会自动添加.我在任何地方都找不到它,我不想要它们!我怎么摆脱他们?

谢谢.

小智 65

你只需要使用普通的PHP翻译:

@foreach ($collection as $index => $element)
   {{$index}} - {{$element['name']}}
@endforeach
Run Code Online (Sandbox Code Playgroud)

编辑:

请注意,$index它将从0,应该是{{ $index+1 }}


Swi*_*ftD 11

{{ }}刀片中的语法本质上意味着回声.你$i++在循环的每次迭代中都会回显.如果你不希望这个值回应你应该改为包装在php标签中.例如:

<?php $i=0 ?>

@foreach($cats as $cat)
    {{ $cat['name'] }}<br />
<?php $i++ ?>
@endforeach
Run Code Online (Sandbox Code Playgroud)

另外需要注意的是,如果你选择在数组中工作那么你的调用就是这样,但除非你有特定的理由这样做我鼓励你使用对象语法,laravel中的雄辩集合对象可以像数组一样迭代但是给出一旦你习惯了,你会得到很多额外的糖.