我正在尝试在下拉列表中获取唯一值。下拉代码是:
@foreach($admin_bills as $admin_bill)
<?php $month = date('M, Y', strtotime($admin_bill->created_at)); ?>
<option value="{{ $admin_bill->id }}">{{ $month }}</option>
@endforeach
这为我提供了基于 created_at
的所有值。例如,如果同一个月有多个条目,它会给出类似的结果
Aug, 2017
Aug, 2017
Aug, 2017
Sep, 2017
Sep, 2017
但是,如果同一个月有多个条目,我希望它们在下拉列表中显示一次。所以结果会是这样的:
Aug, 2017
Sep, 2017
我不能简单地使用像 array_unique()
这样的函数,并且 $admin_bill->id
应该获得唯一 $month
的第一个 id 。我怎样才能做到这一点?请帮忙。我使用的是 Laravel 5.4
谢谢。
最佳答案
建议您在 Controller 中解决此问题。不在 View 中。在 Controller 中,您可以编写如下内容:
$admin_bills->pluck('created_at')->map->format('M, Y')->distinct();
我没有对此进行测试,但我认为它会让您朝着正确的方向前进。
我假设 created_at
属性会自动解析为碳对象。因为这就是 Laravel 通常的工作方式。
关于php - 如何从 foreach 中获取唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46191819/