我需要一点帮助。我在laravel环境中设置了关系我想要检索标记为slots
的所有taken
。
所以它只是循环每个插槽并检查taken
是真还是假。
这是我的想法..并一直在尝试
$plateCont = \App\Models\PlateContainer::find(7);
return $freeslots = $plateCont->containerSlots()->get();
foreach ($freeslots as $slot)
{
if($slot->where('taken', false))
{
return $slot->lists('slot');
}
// return $slots;
}
为此我得到200
状态代码但没有显示。你能给我一个很好的方法吗?
它只是获取指定id
的所有插槽,并检查它们是否为taken
。如果他们不是taken
则返回广告位,否则返回all
广告位
更新将get()
链接在containerSlots()
后面。 Foreach正在回归所有事情。
[
1,
7,
9,
5,
3,
5,
4,
3,
2,
1,
5,
1,
8,
9,
8,
5,
5,
1,
8,
5,
1,
5,
8,
8,
4,
5,
8,
4,
2,
1
]
答案 0 :(得分:1)
您可以使用filter
$freeslots = $plateCont->containerSlots->filter(function($item) {
return $item->taken;
})
答案 1 :(得分:0)
您可以尝试仅获取slot
taken
$freeslots = $plateCont->containerSlots()->where('taken', true)->get()