如何获取除上一次查询以外的所有数据?

时间:2019-12-28 23:36:51

标签: laravel

我有这个foreach,除了我当前添加的最后一个数据之外,我需要获取所有数据

我的foreach:

 @foreach ($user->projects->sortByDesc('id')->except() as $porject)

  // my data

 @endforeach

项目是userprojects表之间的关系

2 个答案:

答案 0 :(得分:2)

从您的代码开始,您可以使用take(n)

@foreach ($user->projects->sortByDesc('id')->take($user->projects->count() - 1) as $porject)

// my data

@endforeach

或者您可以使用$loop->last并仅在不是最后一项时渲染:

@foreach ($user->projects->sortByDesc('id') as $porject)
@if (! $loop->last)
// my data
@endif
@endforeach

或者您可以将tap()pop()(如@mrhnn所建议)一起使用:

@foreach (tap($user->projects->sortByDesc('id'))->pop() as $porject)
// my data
@endforeach

答案 1 :(得分:1)

您可以使用pop()集合method删除最后一个项目。我将在控制器中执行此操作,并与视图共享项目。

$projects = $user->projects()->orderBy('id')->get();
$projects->pop();

return view('view', compact('user', 'projects'))