在Laravel-5.4控制器中只允许来自foreach循环的一组数据

时间:2017-11-02 10:21:45

标签: php laravel laravel-5 laravel-5.4

如何在Laravel-5.4控制器中仅允许来自阵列的一组数据:

foreach(Cart::content() as $cartitem) {
   if($cartitem->id === $id){
      do something....
   }
}

我想在$ cartitem-> id === $ id($ id来自请求)时仅从$ cartitem获取数据集,并拒绝来自$ cartitem的所有其他数据集。可以在数组中的任何位置(在任何索引中)找到数据集。

2 个答案:

答案 0 :(得分:4)

你可以使用雄辩的where()来实现同样的目标。

Cart::content()->where('id', $id);

答案 1 :(得分:0)

我建议您在请求中已经从购物车中查询该特定ID。这样你就不需要这个foreach循环。

foreach(Cart::content() as $cartitem) {
   if($cartitem->id === $id){
      $cartitem; // this is your item
      break; // break from loop you found it already so stop looping
   }
}

从您可以使用的documentation :(返回ID = 1的所有项目)

$cart->search(function ($cartItem, $rowId) {
    return $cartItem->id === 1; // this will return all items with id = 1
});

get by rowId

$rowId = 'da39a3ee5e6b4b0d3255bfef95601890afd80709'; // this is just demo code
Cart::get($rowId);