如何按ID而非内容比较模型

时间:2015-09-03 03:23:44

标签: php laravel laravel-5.1

我正在使用Laravel 5.1。

我有两个集合,$collectionA$collectionB。每个集合都包含FlashcardModel。我试图做这样的事情,但它不起作用:

$collectionA->intersect($collectionB)

原因是虽然每个Flashcard具有相同的ID,但它们的数据透视表是不同的。理想情况下,我想忽略数据透视表并仅按ID进行比较。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

也许有一种更有效的方法可以做到这一点,但您可以将$collectionB缩减为其数组,然后将$collectionA过滤为仅包含这些元素:

$bIds = $collectionB->lists('id')->toArray();
$intersected = $collectionA->filter(function($item) use ($bIds) {
    return in_array($item->id, $bIds);
}