我正在使用Laravel 5.1。
我有两个集合,$collectionA
和$collectionB
。每个集合都包含Flashcard
个Model
。我试图做这样的事情,但它不起作用:
$collectionA->intersect($collectionB)
原因是虽然每个Flashcard
具有相同的ID,但它们的数据透视表是不同的。理想情况下,我想忽略数据透视表并仅按ID进行比较。有没有办法做到这一点?
答案 0 :(得分:0)
也许有一种更有效的方法可以做到这一点,但您可以将$collectionB
缩减为其数组,然后将$collectionA
过滤为仅包含这些元素:
$bIds = $collectionB->lists('id')->toArray();
$intersected = $collectionA->filter(function($item) use ($bIds) {
return in_array($item->id, $bIds);
}