Laravel 如何过滤foreach的数据?

Laravel 如何过滤foreach的数据?,laravel,Laravel,我有这样的设计: 我需要说的是:我添加的最后一篇文章把它放在了设计的头上,然后其他人把它们放了下来 My shut:)Html和foreach代码: @if ($user->projects->count() > 0) <section class="latest section shadow-sm"> <h1>Projects</h1> <div class="section-inner"> @

我有这样的设计:

我需要说的是:我添加的最后一篇文章把它放在了设计的头上,然后其他人把它们放了下来

My shut:)Html和foreach代码:

@if ($user->projects->count() > 0)
<section class="latest section shadow-sm">
    <h1>Projects</h1>
    <div class="section-inner">
        @foreach ($user->projects->sortByDesc('id')->take(1) as $project)
            <div class="item featured text-center ">
                // head post
            </div>
        @endforeach

        @foreach ($projects_last->sortByDesc('id') as $project)
            <div class="item row">    
                // other  post
            </div>
        @endforeach
    </div><!--//section-inner-->                
</section><!--//section-->
@endif
当我说如果
@if($user->projects->count()>0)
没有显示任何东西,但仍然显示
项目,即使它是空的,我也有问题


如果你对如何改进我的代码有任何建议,请带着感激之情去做:)

要迭代
集合
,你必须得到它们。因此,您必须使用
get()
来获得结果

...
@foreach ($user->projects->sortByDesc('id')->take(1)->get() as $project)
...

您可以在此处查看文档:

注意:如果您只想在第一个
foreach
循环中获取一个元素,可以使用
first()
而不是
take(1)
。您的代码如下所示:

@php($first_project = $user->projects->sortByDesc('id')->first())
@if (!is_null($first_project))
// Use $first_project as $project variable 
@enif

代码出错:在@php($first_project=$user->projects->sortByDesc('id')->first())这一行中为foreach()提供的参数无效,即使first中的数据为空,仍然可以获取项目@ifIf使用
first()
您不能使用
@foreach
语句
first()
return对象(它不可编辑),
get()
返回数组。如果您看到“Project”标题,则表示计数器大于0。如果您将
get()
作为我的第一个示例,则会附加什么?当我使用get时会显示此错误(参数太少,无法使用函数illumb\Support\Collection::get(),传入0)
...
@foreach ($projects_last->sortByDesc('id')->get() as $project)
...
@php($first_project = $user->projects->sortByDesc('id')->first())
@if (!is_null($first_project))
// Use $first_project as $project variable 
@enif