Laravel Blade Foreach 只显示 10 个项目

Laravel Blade Foreach only shows 10 items

这将从数据库中加载 12 个候选人。

$candidates = Candidate::all()->where('vacancy_id', $id);

正在做 count($candidates) returns 12

但是在我的 foreach 循环中。比如

$sum = 0;
@foreach($candidates as $candidate)
   $sum +=1;
@endforeach

$sum returns 10 而不是 12.

有什么想法吗?

Laravel 8 PHP8

为什么不直接做呢?

@foreach($candidates as $team)
    {{$loop->iteration}}
@endforeach

$loop->iteration:当前循环迭代(从1开始)。

这里有更多信息:https://laravel.com/docs/8.x/blade

试试这个

$candidates = Candidate::where('vacancy_id', $id)->get();

试试这个:

@foreach($candidates as $key => $candidate)
    @if($key < 10)  
        {{$candidate->value}}
    @endif
@endforeach

如果您尝试打印 10 而不是 12 的原因是您可以分页,您应该使用 Laravel 的分页器:

$candidates = Candidate::all()->where('vacancy_id', $id)->paginate(10);

你的循环有问题,如果你用all()就不用用where条件,where条件用get()

$candidates = Candidate::where('vacancy_id', $id)->get();

你的循环

@foreach($candidates AS $candidate_key => $candidate_value)
    @if($candidate_key <= 9)
        {{ $candidate_value->vacancy_id }}
    @endif
@endforeach