Laravel 如何过滤foreach的数据?
我有这样的设计: 我需要说的是:我添加的最后一篇文章把它放在了设计的头上,然后其他人把它们放了下来 My shut:)Html和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"> @
@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