gpt4 book ai didi

php - 过滤 laravel 结果集(集合)失败

转载 作者:行者123 更新时间:2023-12-04 13:47:18 24 4
gpt4 key购买 nike

Filtering Collections 中,laravel 给出了这个例子:

$users = $users->filter(function ($user) {
if ($user->isAdmin()) {
return $user;
}
});

使用我构建过滤器的示例:

$links = DB::table('links')->orderBy('created_at', 'desc')->remember(60)->take(1000)->get();

$imageLinks = $links->filter(function ($link) {
if (! empty($link->image_src)) {
return $link->toArray();
}
});

但是,这会引发以下错误:

PHP Fatal error: Call to a member function filter() on a non-object

我可能遗漏了什么?

最佳答案

更新:自 Laravel 5.3 起,查询构建器将其结果作为集合返回。无需手动包装。


目前,只有 Eloquent 返回一个集合。目前,常规数据库结果必须自己包装在一个集合中:

$links = DB::table('links')->latest()->take(1000)->get();

$imageLinks = collect($links)->filter($callback);

顺便说一句,你返回什么并不重要。如果为真,则原始项目在返回的过滤集合中。

The docs实际上返回 true:

$collection = collect([1, 2, 3, 4]);

$filtered = $collection->filter(function ($item) {
return $item > 2;
});

$filtered->all();

// [3, 4]

关于php - 过滤 laravel 结果集(集合)失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33265427/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com