Collections 稍后将合并集合从4.0升级到4.1时出现Laravel错误

Collections 稍后将合并集合从4.0升级到4.1时出现Laravel错误,collections,laravel,merge,laravel-4,Collections,Laravel,Merge,Laravel 4,后来升级Laravel版本时,我发现Collection::merge方法工作不好 不确定这是否是我的问题,我找不到错误。让我们看一些信息: print_r($ecb->count()); print_r($boc->count()); // merge both $cubes = $ecb->merge($boc); print_r($cubes->count()); dd(); print_r($ecb->toArray()); print_r($boc-

后来升级Laravel版本时,我发现
Collection::merge
方法工作不好

不确定这是否是我的问题,我找不到错误。让我们看一些信息:

print_r($ecb->count());
print_r($boc->count());

// merge both
$cubes = $ecb->merge($boc);

print_r($cubes->count());
dd();
print_r($ecb->toArray());
print_r($boc->toArray());

// merge both
$cubes = $ecb->merge($boc);

print_r($cubes->toArray());
dd();
输出:

36 27 1

合并应该给出类似的输出36+27(集合上没有重复的元素)

更多调试信息:

print_r($ecb->count());
print_r($boc->count());

// merge both
$cubes = $ecb->merge($boc);

print_r($cubes->count());
dd();
print_r($ecb->toArray());
print_r($boc->toArray());

// merge both
$cubes = $ecb->merge($boc);

print_r($cubes->toArray());
dd();
输出(有点长):

有什么想法吗?
谢谢

合并函数使用
Model#getKey()
来区分不同的模型-您使用的模型是否正确指定了主键?我注意到他们没有标准的
id
字段。

是-它似乎在4和4.1之间发生了变化

请参阅此Github问题:

在本质上,雄辩的集合在合并时,删除具有重复主键的模型


我运行的是Laravel 4.1.29-我使用count()获得了不同的输出-但本质上它只是删除了重复的ID。

我在Laravel 4.1中看到了使用相同ID的merge delete元素()

要具有相同的行为,我应该像这样更改代码:

$boc->each(function($cube) use ($ecb)
{
    $ecb->push($cube);
});