Posted on: November 07, 2020 05:56 PM
Posted by: Renato
Categories: Laravel
Views: 1541
Collection filter() é um método embutido do Laravel que chama o método PHP array_filter() no array subjacente, que, de acordo com a documentação do PHP, preserva as chaves do array. O Laravel Eloquent usa Coleções para retornar os resultados. As coleções contêm métodos úteis que os tornam muito poderosos e úteis de usar. Você pode filtrá-los, modificá-los e muito mais com eles de forma muito conveniente.
Método de Filtro de Coleções do Laravel 6
O método filter() filtra a coleção usando o retorno de chamada fornecido, mantendo apenas os itens que passam em um determinado teste de verdade. Se você não está familiarizado com as Coleções do Laravel, dê uma olhada no meu guia de Exemplo de Coleções do Laravel .
Você pode encontrar o método de filtro de coleção dentro da classe Illuminate \ Support \ Collection . Veja o método abaixo.
public function filter(callable $callback = null)
{
if ($callback) {
return new static(Arr::where($this->items, $callback));
}
return new static(array_filter($this->items));
}
A função de filtro recebe um retorno de chamada como argumento e executa o filtro em cada item. Se o teste falhar para um item específico, ele o removerá da coleção.
Agora, vamos ver o exemplo em ação. Para isso, você precisa instalar o Laravel em sua máquina. Eu já fiz isso.
A partir de agora iremos testar cada Método de Coleções do Laravel dentro do arquivo routes >> web.php .
Escreva o seguinte código dentro do arquivo 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());
});
Portanto, verificamos cada item da coleção em relação a 21 e, se algum item > 21 na coleção, ele será incluído em uma nova matriz.
Agora, inicie o servidor Laravel digitando o seguinte comando na raiz do seu projeto.
php artisan serve
Vá para http://localhost:8000 e veja o array
Isso significa que ele criou um array com todos os itens> 21. Os itens restantes serão removidos da coleção.
Se nenhum retorno de chamada for fornecido, todas as entradas da coleção que são equivalentes a false serão removidas.
<?php
// web.php
Route::get('/', function () {
$collection = collect([0, 1, 2, 3, 4, 5]);
$filtered = $collection->filter();
dd($filtered->all());
});
No código acima, a entrada 0 será removida porque foi considerada um 0 booleano que é falso.
Pesquise tambem sobre PHP array_filter()
Donate to Site
Renato
Developer