gpt4 book ai didi

laravel - 如何根据首字母显示 View 中的记录?

转载 作者:行者123 更新时间:2023-12-02 19:02:40 26 4
gpt4 key购买 nike

在我的 Controller 中,我按字母顺序将一堆类别传递给 View ,如下所示:

public function index()
{
$categories = Category::orderBy('name', 'asc')->get();

return view('categories')->with('categories',$categories);
}

在我看来,我希望在与字母表中的字母相对应的单独列中显示每个类别,因此在“A”列中我将显示以 A 开头的所有类别,依​​此类推。

是否可以通过字母过滤 View 中的结果来实现此目的,如果可以,如何实现?

最佳答案

您可以在 Controller 中按首字母对类别列表进行分组,然后将结果传递到您的 View ,操作方法如下:

Controller :

public function index() {

$categories = Category::orderBy('name', 'asc')->get();

$groups = $categories->reduce(function ($carry, $category) {

// get first letter
$first_letter = $category['name'][0];

if ( !isset($carry[$first_letter]) ) {
$carry[$first_letter] = [];
}

$carry[$first_letter][] = $category;

return $carry;

}, []);

return view('categories')->with('groups', $groups);
}

查看:

@foreach($groups as $letter => $group)

<ul>

<li>{{ $letter }}</li>

@foreach($group as $category)

<li>{{ $category['name'] }}</li>

@endforeach

</ul>

@endforeach

这是一个工作 example使用array_reduce (与上面Collection::reduce功能相同)

关于laravel - 如何根据首字母显示 View 中的记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47971469/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com