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

9 浏览
0 Comments

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

我将数组$cats传递给我的laravel模板视图。这是一个来自数据库事务的多维数组,包含类别数据。因此,它会包含像这样的数据:

$cat[0]['id'] = 1;
$cat[0]['name'] = '第一个类别';

依此类推。在我的blade模板中,我有以下代码:

            {{ $i=0 }}
            @foreach($cats as $cat)
                    {{ $cat['name'] }}
                {{ $i++ }}
            @endforeach

它的输出是:

0 第一个类别
1 第二个类别
2 第三个类别

请注意类别名称前面的数字。它们是从哪里来的?这是某种聪明的Laravel技巧吗?似乎当你包含一个计数变量时,它们会被自动添加。我在任何地方都找不到相关的说明,而且我不想要它们!我该如何摆脱它们?

谢谢。

0
0 Comments

Laravel 4在使用foreach循环时,当给定count变量时,无法正确累加数字的问题。

问题的原因是在循环中使用了一个三元运算符来判断是否设置了$i变量,并根据判断结果进行累加或者赋值为0。然而,由于每次循环都会重新初始化$i变量,导致无法正确累加数字。

解决方法是将三元运算符的判断条件改为判断$i变量是否已经设置,而不是判断是否设置了$i变量并进行累加。这样,每次循环都会正确地累加数字。

修正后的代码如下:

($cats as $cat)
    {{ (isset($i)) ? ++$i : ($i = 0) }} - {{$cat['name']}}

通过将++操作符放在$i变量前面,可以在判断$i变量已经设置的情况下,先进行累加操作,再输出$i变量的值。这样就可以正确地累加数字,并输出正确的结果。

以上就是关于Laravel 4在使用foreach循环时,给定count变量无法正确累加数字的问题的原因和解决方法。通过对问题的分析和修正,我们可以避免类似的错误,并在使用Laravel 4时获得正确的结果。

0
0 Comments

问题的原因是在blade模板中使用了{{ }}语法,这意味着要输出$i++的值。如果不想输出这个值,应该使用php标签将其包裹起来。

解决方法是使用php标签将$i=0$i++包裹起来。具体代码如下:


@foreach($cats as $cat)
    {{ $cat['name'] }}
    
@endforeach

另外,如果选择使用数组也是可以的,但除非有特殊原因,建议使用对象语法。Laravel中的Eloquent集合对象可以像数组一样进行迭代,但是一旦熟悉了它的用法,会给你带来很多额外的好处。

如果想了解更多关于"eloquent collection objects"的内容,可以参考以下链接:

- [Laravel官方文档中关于Eloquent集合的说明](http://laravel.com/docs/eloquent#collections)

- [Dayle Rees的教程中关于Eloquent集合的内容](http://daylerees.com/codebright/eloquent-collections)

通过阅读Dayle Rees的教程,我意识到我的初始问题是不正确的,$cats实际上已经是一个集合对象而不是简单的数组,只是我没有意识到而已。谢谢你的帮助!

0
0 Comments

问题出现的原因是在Laravel 4中,在使用foreach循环时,当提供了计数变量时,无法正确地计算数字的总和。解决方法是使用纯php的方式进行翻译,即在foreach循环中使用{{$index}} - {{$element['name']}}来输出索引和元素的名称。需要注意的是,$index0开始计数,所以应该使用{{ $index+1 }}来输出正确的索引值。

0