Laravel - 获取@foreach的最后元素

5 php foreach blade laravel-5.2

基本上,我将一个变量员工StaticPagesController传递about.blade.php. 当循环通过@foreach时,我希望代码知道它是否是最后一个元素,因此它将输出员工的名字而不用逗号.这些都不会奏效.

1.

@foreach($employees as $employee) 
    @if($employee == end($employees))
        {{ $employee->first_name }} {{ $employee->last_name }}
    @else
        {{ $employee->first_name }} {{ $employee->last_name }}, 
    @endif
@endforeach

enter code here
Run Code Online (Sandbox Code Playgroud)

2.

@foreach($employees as $employee) 
    @if($employees->last())
        {{ $employee->first_name }} {{ $employee->last_name }}
    @else
        {{ $employee->first_name }} {{ $employee->last_name }}, 
    @endif
@endforeach
Run Code Online (Sandbox Code Playgroud)

Erw*_*wan 7

从Laravel 5.3开始就更容易了:@foreach中有一个$ loop变量:

https://laravel.com/docs/5.3/blade#the-loop-variable

@foreach($employees as $employee)

   @if ($loop->last)
      // This is the last iteration.
      {{ $employee->first_name }} {{ $employee->last_name }}
   @else
      {{ $employee->first_name }} {{ $employee->last_name }},  
   @endif

@endforeach
Run Code Online (Sandbox Code Playgroud)

最短的替代方案可以是:

@foreach($employees as $employee)
   {{ $employee->first_name }} {{ $employee->last_name }}{{ ($loop->last ? '' : ',') }}
@endforeach
Run Code Online (Sandbox Code Playgroud)

注意$ loop-> first也存在.