我有这样的设计:
我需要说:我添加的最后一个帖子放在设计的顶部,然后其他帖子放下。
我闭嘴:) 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
$projects_last
的控制器代码:
$projects_last = $user->projects;
$projects_last->pop();
return view('frontend.user_profile',compact('user','projects_last'));
我有一个问题,当我说@if ($user->projects->count() > 0)
没有显示任何东西但仍然向我显示<h1>Projects</h1>
时,即使它是空的!
如果您有任何建议使我的代码更好,请感谢:)
答案 0 :(得分:1)
要迭代Collections
,必须先获取它们。因此,您必须使用get()
来获得结果。
...
@foreach ($user->projects->sortByDesc('id')->take(1)->get() as $project)
...
和
...
@foreach ($projects_last->sortByDesc('id')->get() as $project)
...
您可以在此处查看文档:{{3}}
注意:如果只想在第一个foreach
循环中获得一个元素,则可以使用first()
代替take(1)
。您的代码将像这样:
@php($first_project = $user->projects->sortByDesc('id')->first())
@if (!is_null($first_project))
// Use $first_project as $project variable
@enif