2017-11-02 4 views
1

Laravel-5.4 컨트롤러 foreach 루프에서 데이터의 한 세트 만 허용 $ cartitem-> id === $ id ($ id는 요청에 의한 것이므로) $ cartitem에서 $ cartitem의 다른 모든 데이터 집합을 거부합니다. 데이터 집합은 배열의 모든 위치에서 찾을 수 있습니다.는 Laravel-5.4 컨트롤러의 배열에서 데이터를 한 세트 만 허용하는 방법

+0

당신이 당신의 배열 모양을 어떻게 보여줄 수에 의해

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

또는 get ? – urfusion

+0

장바구니 :: content() 어디서 얻을 수 있습니까 ?? –

+0

@MahfuzShishir LaravelShoppingcart 패키지를 사용하고 있습니다. –

답변

2

where()을 사용하면 동일한 결과를 얻을 수 있습니다.

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

트릭을 해 주셨습니다. 정말 고마워요. 카트가 -> 어디에서() 쿼리를 지원하는지 몰랐습니까? 천재 야! –

+1

만약 당신이 대답을 수락 할 수 있습니다 :) – Puneee

+0

나는 그 불쌍한 평판이 나를 허락하지 않을 수 있었으면 좋겠 : (그러나 한 번 내 평판이 증가하면 내가 확실히 할게.) –

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) ROWID

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

실제로 여기에서 "rowId"와 결코 일치하지 않는 현재 Cart로 DB에서 사용 가능한 제품의 ID를 확인해야했습니다. "그래서 나는 카트의 저장된 'id'와 일치해야했다. 또한 모든 제품에 대해 모든 장바구니를 한 눈에 파악할 수 있습니다. –