2017-04-30 18 views
0

mapコレクションのavailableキーに問題があります。地図を使用したLaravelコレクション

availableキーの使用の方法です。 $ unavailableProductsの商品IDの値に$商品が含まれていない場合はtrueを返します。($value->product_id == $product->id)

どうしたのですか?

$unavailableProducts = $this->unavailableProducts(); 
    $products = $this->products->all(); 

    $allProducts = $products->map(function ($product) use($unavailableProducts) { 
    return [ 
     'id'   => $product->id, 
     'title'   => $product->title, 
     'available'  => $unavailableProducts['result']->contains(function ($value, $key) use ($product) { 
      if ($value->product_id == $product->id) { 
       return false; 
      } 
      return true; 
     }), 
    ]; 
}); 
+1

$product->idあなたは必ず '$ unavailableProducts [ '結果' は、ここで$unaviableProductions['result']コレクションがキーidを持っている場合

$unavailableProducts = $this->unavailableProducts(); $products = $this->products->all(); $allProducts = $products->map(function ($product) use($unavailableProducts) { return [ 'id' => $product->id, 'title' => $product->title, 'available' => $unavailableProducts['result']->contains('id', $product->id), ]; }); 

$unavailableProducts['result']->contains('id', $product->id)が決定されます] 'はコレクションですか?そうでない場合は、それをラップしてください: 'collect($ unavailableProducts ['result'])' – Ohgodwhy

答えて

1

まず、$unavailableProductions['result']がコレクションであることを確認します。

第二に、このようなあなたのcontains方法を変更:値は

関連する問題