Laravel:循环上布尔值来检查TRUE和FALSE

时间:2015-11-20 09:18:54

标签: php laravel

我需要一点帮助。我在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
]  

2 个答案:

答案 0 :(得分:1)

您可以使用filter

$freeslots = $plateCont->containerSlots->filter(function($item) {
    return $item->taken;
})

答案 1 :(得分:0)

您可以尝试仅获取slot

taken
$freeslots = $plateCont->containerSlots()->where('taken', true)->get()