Here are the dumped collections:
//$collOne
Illuminate\Database\Eloquent\Collection {#3386
#items: array:6 [
4807 => "{"color_id":7,"size_id":4,"pack_id":null}"
4808 => "{"color_id":7,"size_id":2,"pack_id":null}"
4809 => "{"color_id":7,"size_id":6,"pack_id":null}"
4840 => "{"color_id":44,"size_id":4,"pack_id":null}"
4841 => "{"color_id":44,"size_id":6,"pack_id":null}"
4842 => "{"color_id":44,"size_id":2,"pack_id":null}"
]
}
//$collTwo
Illuminate\Database\Eloquent\Collection {#3403
#items: array:5 [
430 => "{"color_id":7,"size_id":4,"pack_id":null}"
431 => "{"color_id":7,"size_id":2,"pack_id":null}"
433 => "{"color_id":44,"size_id":4,"pack_id":null}"
434 => "{"color_id":44,"size_id":6,"pack_id":null}"
435 => "{"color_id":44,"size_id":2,"pack_id":null}"
]
}
Here is the error:
{
"message": "Call to a member function getKey() on string",
"exception": "Symfony\\Component\\Debug\\Exception\\FatalThrowableError",
"file": "[obfuscated]/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Collection.php",
"line": 281,
"trace": [
{
"file": "[obfuscated].php",
"line": 174,
"function": "diff",
"class": "Illuminate\\Database\\Eloquent\\Collection",
"type": "->"
},
Here is the line 174 referenced in the above error:
$diff = $collOne->diff($collTwo);
The docs seem pretty straight forward:
The diff method compares the collection against another collection or a plain PHP array based on its values. This method will return the values in the original collection that are not present in the given collection:
Am I missing something obvious here?
mapWithKeys
call on eloquent collections where I returned only specific properties and json encoded them in order to make comparisons on the two collections. – BlunkIlluminate\Database\Eloquent\Collection
must be a collection of Eloquent models. I suspect this isn't. Can you post the output ofdump($collOne->first())
anddump($collTwo->first())
– Marked