Laravel过滤器。完整指南

631 阅读2分钟

Laravel Collections Filter Method Example

Laravel Eloquent使用集合来返回结果。集合包含了一些有用的方法,使它们非常强大,使用起来很有帮助。你可以过滤它们, 修改它们, 以及更多非常方便地使用它们。 这就导致你的数组被转换为一个JavaScript对象,而不是一个数组。如果你不熟悉Laravel集合,那么请看我的Laravel集合指南。

拉威尔过滤器

Laravel filter()是一个内置的集合方法,调用 PHP array_filter()方法在底层数组上,它保留了数组的键。 **filter()**方法使用给定的回调对集合进行过滤,只保留那些通过给定真实性测试的项目。

你可以在Illuminate/Support/Collection 类中找到集合过滤方法 。请看下面的方法。

public function filter(callable $callback = null)
{
     if ($callback) {
         return new static(Arr::where($this->items, $callback));
     }

     return new static(array_filter($this->items));
}

过滤器函数 以一个回调作为参数,对每个项目运行过滤器。如果某个项目的测试失败,那么它将把它从集合中删除。

现在,让我们看看这个例子的操作。为此, 你需要在你的机器上安装Laravel.我已经安装好了.

从现在开始, 我们将在routes >> web.php 文件中测试每个Laravel集合方法。

web.php 文件中写下以下代码。

<?php

// web.php

Route::get('/', function () {
    $collection = collect([19, 21, 29, 46]);

    $filtered = $collection->filter(function ($value, $key) {
        return $value > 21;
    });

    dd($filtered->all());
});

所以, 我们已经检查了每一个集合项目与21, 如果任何项目 >21 的集合,它将被包含在一个新的数组。

现在, 在你的项目根目录下输入以下命令来启动Laravel服务器.

php artisan serve

进入http://localhost:8000, 你会看到下面的输出。

Laravel Collections Filter Method Tutorial With Example

这意味着它已经创建了一个数组, 所有项目>21.其余的项目将被从集合中删除。

如果没有提供回调,集合中所有相当于false的条目都将被删除。

<?php

// web.php

Route::get('/', function () {
    $collection = collect([0, 1, 2, 3, 4, 5]);

    $filtered = $collection->filter();

    dd($filtered->all());
});

在上面的代码中,0 条目将被删除,因为它被当作布尔 **0,也就是假的。因此,**输出结果如下。

Laravel Collections Filter Method

本教程就到此为止。

参见

Laravel集合搜索()

拉威尔口才

The postLaravel filter:完整的指南首次出现在AppDividend上。