我有一个返回类别名称的表。我获取所有记录,但问题是它有一条我想要区别对待的记录,"其他水果"。我想让它最后显示出来。
例如,当我从数据库中获取记录时:
Category::where('parent_category_id', $data)->where('is_active', 1)->lists('name', 'id');
它返回的集合如下所示:
Illuminate\Support\Collection Object
(
[items:protected] => Array
(
[27] => Apple
[346] => Other Fruits
[350] => Papaya & Pomegranate
[377] => Banana
[438] => Orange & Sweet Lime
)
)
如何移动"其他水果"项目是最后一个?
答案 0 :(得分:0)
嘿,只需使用两个规则并获得两个集合
$category = Category::where('parent_category_id', $data)->where('is_active', 1)->lists('name', 'id');
$other = << use your rule correctly >>
然后在您的视图中使用此集合
foreach($category as .....)
foreach($other as ....)
答案 1 :(得分:0)
你可以尝试这样的事情。
$categoriesExceptOtherFruits = Category::where('parent_category_id', $data)
->where('is_active', 1)
->where('id', '<>', $otherFruitsId);
$allCategories = Category::where('parent_category_id', $data)
->where('is_active', 1)
->where('id', $otherFruitsId)
->union($categoriesExceptOtherFruits)
->lists('name', 'id');
如果您的other
类别较少,请使用like
代替<>
。
另一种解决方案是在表格中创建sort
列,然后使用orderBy('sort', 'asc')
。
当然,您可以手动重新收集收集。