我知道这是一个问题,但没有解决方案,帮助我。所以,我有表'About'在数据库和模型About.php。我想只检索一列从数据库,如标题,并使用以下代码:
$abouts = About::orderBy('created_at', 'desc'); return view('about')->with('abouts', $abouts);
并且鉴于:
{{$abouts->title}}
以及如何解决这个问题。我不想使用foreach循环。它是可能的吗?如何?
mwg9r5ms1#
$abouts = About::orderBy('created_at', 'desc')->get(); return view('about')->with('abouts', $abouts);
在Laravel的Eloquent ORM中,get()方法检索与查询匹配的所有记录。它返回一个模型集合,您可以使用@foreach循环在刀片模板中循环。例如:
get()
@foreach
@foreach($abouts as $about) <p>{{ $about->title }}</p> @endforeach
另一方面,first()方法检索与查询匹配的第一个模型。它返回单个模型,您可以在刀片模板中显示该模型,而无需循环。例如:
first()
和刀片
<p>{{ $abouts->title }}</p>
最后,paginate($perPage)方法用于检索分页结果,返回一个LengthAwarePaginator示例,该示例设计用于Laravel的分页功能。然后,您可以使用links()方法呈现页面导航链接。
paginate($perPage)
links()
$abouts = About::orderBy('created_at', 'desc')->paginate(10); return view('about')->with('abouts', $abouts);
在blade模板中,可以像以前一样使用@foreach循环遍历当前结果页。要显示分页链接,可以在循环后添加以下行:
{{ $abouts->links() }}
这将呈现导航到上一页、下一页和其他结果页的链接。
ddarikpa2#
尝试拔()pluck方法检索给定键的所有值:
$collection = collect([ ['product_id' => 'prod-100', 'name' => 'Desk'], ['product_id' => 'prod-200', 'name' => 'Chair'], ]); $plucked = $collection->pluck('name'); $plucked->all(); // ['Desk', 'Chair']
在控制器中:
$titles = About::orderBy('created_at', 'desc')->pluck('title')->all(); return view('about')->with('titles');
在叶片使用中:
{{$titles[0]}}
参考:https://laravel.com/docs/9.x/collections#method-pluck
2条答案
按热度按时间mwg9r5ms1#
在Laravel的Eloquent ORM中,
get()
方法检索与查询匹配的所有记录。它返回一个模型集合,您可以使用@foreach
循环在刀片模板中循环。例如:另一方面,
first()
方法检索与查询匹配的第一个模型。它返回单个模型,您可以在刀片模板中显示该模型,而无需循环。例如:和刀片
最后,
paginate($perPage)
方法用于检索分页结果,返回一个LengthAwarePaginator示例,该示例设计用于Laravel的分页功能。然后,您可以使用links()
方法呈现页面导航链接。在blade模板中,可以像以前一样使用
@foreach
循环遍历当前结果页。要显示分页链接,可以在循环后添加以下行:这将呈现导航到上一页、下一页和其他结果页的链接。
ddarikpa2#
尝试拔()
pluck方法检索给定键的所有值:
在控制器中:
在叶片使用中:
参考:https://laravel.com/docs/9.x/collections#method-pluck