我有两个收藏夹。第一个是大收藏。另一个是删除列表。例如:
$data= List::where('status', true)->get();
$list= List::where('begin_at', '<', Carbon::now())->pluck('id');
$result = $data->whereNotIn('id', $list);
这只是一个简单的例子。我有动态数据。我的问题是:
当我返回$data
时,它返回[{}, {}, ...]
格式
但是当我返回$result
时,它返回{}, {}, ...
我尝试使用$result->toArray()
,$result->toCollapse()
,但它们都不起作用。
为什么get()
之后,使用where条件更改集合的类型?为什么数组符号不见了?解决方案中的最佳实践是什么?预先感谢。
使用集合上的all()
将其作为完整的Eloquent模型的数组获取。如果您改用toArray()
,它将把所有内容转换为纯PHP数组。
$data->whereNotIn('id', $list)->all();
在模型上调用get()
将创建一个集合,创建后的集合将在其自身上调用all()
。因此,在修改了集合之后,您将需要自己调用all()
,使其具有与get()
中相同的“格式”。