Разрешить только один набор данных из цикла foreach в контроллере Laravel-5.4

Как разрешить только один набор данных из массива в контроллере Laravel-5.4:

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

Я хочу взять только набор данных из $ cartitem, когда $ cartitem-> id === $ id ($ id приходит из запроса), и отклонить все остальные наборы данных из $ cartitem. Набор данных может быть найден в любом месте (в любом индексе) из массива.

1

Решение

Ты можешь использовать where() красноречиво добиться того же.

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

Другие решения

Я бы порекомендовал, чтобы в запросе вы уже запрашивали этот конкретный идентификатор из корзины. Таким образом, вам не нужен этот цикл 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
}
}

От документация Вы можете использовать: (возвращает все элементы с id = 1)

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

Или же получить по rowId

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector