I'm trying to fetch items that are not in a particular product.
I have, therefore, a model Produto
, each product has several items, and another model Item
.
I'm trying to use Laravel's collections , more specifically the diff
method, as follows:
public function buscarItens($id)
{
$produto = Produto::find($id);
//busca todos os itens cadastrados
$todosItens = Item::all();
//busca os itens do produto
$itensDoProduto = $produto->itens;
//retorna os produtos que NÃO PERTENCEM ao item + os produtos que PERTENCEM ao item
$collection1 = collect($todosItens);
$diff = $collection1->diff($itensDoProduto);
return response()->json($collection1);
}
It turns out that this difference that is returning is equal to $todosItens
itself, as if there were no items in common between $itensDoProduto
and $todosItens
, but it exists.
What could be happening?