从集合中删除行,更改集合的类型

问题描述 投票:1回答:1

我有两个收藏夹。第一个是大收藏。另一个是删除列表。例如:

$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条件更改集合的类型?为什么数组符号不见了?解决方案中的最佳实践是什么?预先感谢。

php arrays json laravel collections
1个回答
0
投票

使用集合上的all()将其作为完整的Eloquent模型的数组获取。如果您改用toArray(),它将把所有内容转换为纯PHP数组。

$data->whereNotIn('id', $list)->all();

See docs here

在模型上调用get()将创建一个集合,创建后的集合将在其自身上调用all()。因此,在修改了集合之后,您将需要自己调用all(),使其具有与get()中相同的“格式”。

© www.soinside.com 2019 - 2024. All rights reserved.