Tutorial de coleção de Laravel

Tutorial de coleção de Laravel
A coleção Laravel é uma característica útil da estrutura do Laravel. Uma coleção funciona como uma matriz PHP, mas é mais conveniente. A aula de coleção está localizada no Illuminate \ Support \ Collection localização. Uma coleção permite criar uma cadeia de métodos para mapear ou reduzir as matrizes. Não é mutável, e uma nova coleção retorna quando o método de coleta é chamado. É um invólucro de API para funções de matriz PHP e uma coleção pode ser gerada a partir de uma matriz. Este tutorial mostra como criar e usar uma coleção em qualquer projeto Laravel.

Pré -requisito

Você deve criar um projeto de Laravel antes de iniciar este tutorial. Você também deve ter um conhecimento básico de controlador e roteamento.

Criar uma coleção

Crie o controlador nomeado Coleção CONTROLLER e escreva o código necessário para criar uma nova coleção dentro do controlador. Execute o seguinte comando para criar o controlador.

$ PHP Artisan Make: Controller CollectionController

Você pode criar uma coleção usando uma classe de coleção ou o método collect (). Ambos os lados são mostrados abaixo. Adicione a seguinte linha no topo do Coleção CONTROLLER classe para usar o coleção aula.

// Adicione a aula de coleção
use iluminado \ support \ collection;

A. Criar coleção usando classe

Crie o Coleção_class () método com o seguinte código dentro do ColeçãoConntroller. Aqui, uma coleção de números é criada com uma classe de coleção. Quando esse método é chamado, os valores da variável de coleta serão mostrados no navegador.

public function collection_class ()
// Crie uma nova coleção usando a classe de coleção
$ coleção1 = nova coleção ([67,34,89,56,23]);
// despejar o conteúdo variável no navegador
DD ($ Coleção1);

Adicione a seguinte rota no rotas \ web.php arquivo para ligar para o Coleção_class ().

Rota :: get ('collect1', 'collectioncontroller@collection_class');

Digite o seguinte URL no navegador para verificar a saída.

http: // localhost: 8000/colecion1

A saída a seguir aparecerá após a execução do URL. Os cinco números da coleção são impressos aqui.

B. Criar coleção usando o método

Uma coleção também pode ser criada usando o colecionar () método. Adicione o seguinte COLLECT_METHOD () dentro de Coleção CONTROLLER Para criar uma coleção de strings usando o colecionar () método. Quando esse método é chamado, os valores da variável de coleta serão mostrados no navegador, como antes.

função pública colecion_method ()
// Crie uma nova coleção usando o método de coleta
$ collection2 = colet (["bom", "melhor", "melhor"]);
// despejar o conteúdo variável no navegador
DD ($ Coleção2);

Adicione a seguinte rota no rotas \ web.php arquivo para ligar para o COLLECT_METHOD ().

Route :: get ('collect2', 'collectioncontroller@collect_method');

Digite o seguinte URL no navegador para verificar a saída.

http: // localhost: 8000/colecion2

A saída a seguir aparecerá após a execução do URL. Os três valores de string da coleção são impressos aqui.

Dados de pesquisa na coleção

Os dados podem ser pesquisados ​​na coleção de várias maneiras. Adicione o seguinte código dentro do Coleção CONTROLLER. Dois tipos de pesquisa são mostrados no código. Primeiro, uma coleção de clientes é definida e o contém () O método é usado para pesquisar o cliente nomeado Janifer.' Em seguida, uma coleção da matriz multidimensional é definida e o onde() O método é usado para dois tipos de pesquisa na coleção. O primeiro onde() o método é usado para pesquisar as informações, onde o EU IA A chave contém o valor '011176645.' O segundo onde() o método é usado para procurar as informações em que o Marcas de CSE409 é 88.

função pública search_data ()

// Declare uma coleção
$ cliente = colecionar ([['id' => '894673', 'nome' => 'rahman', 'email' => '[email protected] '],
['id' => '454886', 'nome' => 'janifer', 'email' => '[email protected] '],
['id' => '306007', 'nome' => 'Micheal', 'email' => '[email protected] ']]);
// pesquisa usando o método contém
if ($ customer-> contém ('nome', 'janifer')))

eco "Janifer existe na lista de clientes.
";

// Declare outra coleção
$ marks = colecionar ([
['Id' => '011176644', 'Marks' => ['cse401' => 87, 'cse409' => 88]],
['Id' => '011176645', 'Marks' => ['cse402' => 69, 'cse409' => 75]],
]);
// Pesquise usando onde o método
eco $ marks-> where ('id', '011176645')."
";
eco $ marks-> where ('marcas.CSE409 ', 88);

Adicione a seguinte rota no rotas \ web.php arquivo para ligar para o Search_data ().

Rota :: get ('src_collection', 'collectioncontroller@search_data');

Digite o seguinte URL no navegador para verificar a saída.

http: // localhost: 8000/src_collection

A saída a seguir aparecerá após a execução do URL.

Dados de coleta de filtro

O filtro() O método é usado para filtrar dados da coleção. Adicione o seguinte código em Coleção CONTROLLER. Uma coleção de produtos é definido no código que contém nome e preço do produto. O filtro() o método é usado para filtrar dados da coleção do qual o preço O valor é maior que 4000. A coleção de dados filtrados é convertida em uma matriz e impressa pelo para laço.

função pública filtro_data ()

// Declare uma coleção
$ Products = Collect ([
['produto' => 'hdd', 'preço' => 6000],
['produto' => 'mouse', 'preço' => 500],
['Produto' => 'Monitor', 'Price' => 5000],
['produto' => 'impressora', 'preço' => 4000],
]);
// Crie outra lista após filtrar os dados com base no valor do preço
$ filter_price = $ Products-> filtro (função ($ item)
retornar data_get ($ item, 'preço')> 4000;
);
// Leia todos os dados como matriz da nova coleção
$ filtrado = $ filter_price-> all ();
// iterando os valores da matriz usando loop
foreach ($ filtrado como $ valor)

eco "nome:".$ valor ['produto'].","."Preço: ".$ valor ['preço']."
";

Adicione a seguinte rota no rotas \ web.php arquivo para ligar para o filtro_data ().

Rota :: get ('filtro_collection', 'collectioncontroller@filter_data');

Digite o seguinte URL no navegador para verificar a saída.

http: // localhost: 8000/filter_collection

A saída a seguir aparecerá após a execução do URL.

Classificar dados de coleta

Vários organizar Existem métodos no Laravel para classificar os dados de coleta. Adicione o seguinte código no Coleção CONTROLLER. Uma coleção de livros é definida no código. O ordenar por() O método é usado para classificar os dados de coleta com base na chave 'autor.'Então, os valores da variável de coleção classificada são impressos no navegador.

função pública Sort_data ()
// Declare uma coleção
$ books = colecionar ([
['Nome' => 'Python Cookbook: Receitas para dominar o Python 3',
'Autor' => 'David Beazley'],
['Nome' => 'Aprenda Python em 1 dia: Guia completo do Python com exemplos',
'Autor' => 'Krishna Rungta'],
['Nome' => 'Programação Python: Uma Introdução à Ciência da Computação',
'Autor' => 'John M. Zelle '],
['Nome' => 'Python Pocket Reference 5ed: Python no seu bolso',
'Autor' => 'Mark Lutz']
]);
// Classificar os dados de coleção com base no nome do autor
$ STOREDBOOK = $ Books-> Sortby ('Autor');
// despejar o conteúdo variável no navegador
dd ($ stornedbook-> valores ()-> TOARRAY ());

Adicione a seguinte rota no rotas \ web.php arquivo para ligar para o sort_data ().

Route :: get ('Sort_Collection', 'CollectionController@Sort_Data');

Digite o seguinte URL no navegador para verificar a saída.

http: // localhost: 8000/sort_collection

A saída a seguir aparecerá após a execução do URL.

Dados de coleta de fatias

Uma parte específica pode ser cortada da coleção usando o pegar() método. Adicione o seguinte código no Coleção CONTROLLER. O pegar() O método é usado no código para criar uma nova lista cortando os três primeiros itens da coleção. Em seguida, o para loop imprime os valores da nova coleção.

função pública slice_data ()
// Declare uma coleção
$ linguagens = colecionar (['php', 'bash', 'python', 'java', 'c#', 'c ++']);
// Recuperar os três primeiros dados
$ slice = $ linguagens-> Take (3);
// Valores de coleta de iteração
foreach ($ slice como $ valor)

eco $ valor."";

Adicione a seguinte rota no rotas \ web.php arquivo para ligar para o slice_data ().

Rota :: get ('slice_collection', 'collectioncontroller@slice_data');

Digite o seguinte URL no navegador para verificar a saída.

http: // localhost: 8000/slice_collection

A saída a seguir aparecerá após a execução do URL.

Encontre a diferença entre duas coleções

O diff () O método é usado para encontrar valores da primeira coleção que não existe na segunda coleção. Adicione o seguinte código no Coleção. Duas variáveis ​​de coleção são definidas aqui. O diff () o método gera uma nova coleção depois de recuperar os valores de Lista1 que não existe em LIST2.

função pública find_diff ()
// declarar duas coleções
$ list1 = colecionar (['notebook', 'caneta', 'sharpner', 'escala', 'lápis']);
$ list2 = colecionar (['lápis', 'lápis colorido', 'papel colorido', 'caneta']);
// Encontre quais dados existem na List1, mas não na Lista2
$ newList = $ list1-> diff ($ list2);
// despejar o conteúdo variável no navegador
dd ($ newlist);

Adicione a seguinte rota no rotas \ web.php arquivo para ligar para o find_diff ().

Rota :: get ('diff_collection', 'collectioncontroller@find_diff');

Digite o seguinte URL no navegador para verificar a saída.

http: // localhost: 8000/diff_collection

A saída a seguir aparecerá após a execução do URL.

Dados de coleta de flip

O virar() O método é usado para fazer a chave para o valor e o valor da chave da coleção. Adicione o seguinte código no coleçãoController para verificar a função do virar() método. Uma coleção de três itens é definida no código. O virar() o método é aplicado à coleção e a saída do virar() o método é impresso usando o dd () método.

função pública flip_data ()
// Declare a coleção
$ Products = Collect (['Nome' => 'Samsung A40', 'Brand' => 'Samsung', 'Price' => '$ 300']);
// despejar o conteúdo variável no navegador
dd ($ produtos-> flip ());

Adicione a seguinte rota no rotas \ web.php arquivo para ligar para o flip_data ().

Rota :: get ('flip_collection', 'collectioncontroller@flip_data');

Digite o seguinte URL no navegador para verificar a saída.

http: // localhost: 8000/flip_collection

A saída a seguir aparecerá após a execução do URL.

Recuperar a coleção

O pegar() O método é usado para ler o valor de uma chave específica da coleção. Adicione o seguinte código no Coleção CONTROLLER. O valor do 'nome' A chave é recuperada no código usando o pegar() método.

Função pública recuperar_data ()
// Declare a coleção
$ Products = Collect (['Nome' => 'Samsung A40', 'Brand' => 'Samsung', 'Price' => '$ 300']);
dd ($ produtos-> get ('nome'));

Adicione a seguinte rota no rotas \ web.php arquivo para ligar para o recuperar dados().

Route :: get ('read_collection', 'collectionController@retrieve_data');

Digite o seguinte URL no navegador para verificar a saída.

http: // localhost: 8000/read_collection

A saída a seguir aparecerá após a execução do URL.

Dados de coleta de grupos

O grupo () O método é usado para criar uma nova coleção a partir de outra coleção agrupando com base no valor da chave específico. Adicione o seguinte código dentro do Coleção CONTROLLER. O grupo () O método é usado aqui para retornar uma nova coleção agrupando os valores com base no 'Apr' chave.

função pública group_data()

Public Function Group_Data ()
$ vendas = colecionamento ([
['Jan' => 100000],
['Mar' => 500000],
['Abr' => 600000],
['Jan' => 450000],
['Jun' => 230000],
['Agosto' => 600000],
['SEP' => 789333],
['Jul' => 452000],
['Jan' => 700000],
['Abr' => 490000],
['Jun' => 670000],
['Abr' => 560000]
]);
dd ($ vendas-> groupby ('abr'));

Adicione a seguinte rota no rotas \ web.php arquivo para ligar para o group_data ().

Rota :: get ('group_collection', 'collectioncontroller@group_data');

Digite o seguinte URL no navegador para verificar a saída.

http: // localhost: 8000/group_collection

A saída a seguir aparecerá após a execução do URL.

Combine dados de coleta

O implodir() O método é usado para combinar valores -chave específicos da coleção. Adicione o seguinte código dentro do Coleção CONTROLLER. O implodir() o método é usado aqui para combinar os valores do nome Chave da coleção com espaço.

função pública junção_data ()
// Declare uma coleção
$ cliente = colecionar ([['id' => '894673', 'nome' => 'rahman', 'email' => '[email protected] '],
['id' => '454886', 'nome' => 'janifer', 'email' => '[email protected] '],
['id' => '306007', 'nome' => 'Micheal', 'email' => '[email protected] ']]);
// Combine e imprima o valor
dd ($ cliente-> implode ('nome', "));

Adicione a seguinte rota no rotas \ web.php arquivo para ligar para o junção_data ().

Rota :: get ('junção_collection', 'collectioncontroller@junção_data');

Digite o seguinte URL no navegador para verificar a saída.

http: // localhost: 8000/junção_collection

A saída a seguir aparecerá após a execução do URL.

Leia as teclas de coleção

O chaves() O método é usado para criar uma nova coleção com todas as chaves de outra coleção. Adicione o seguinte código dentro do Coleção CONTROLLER. A coleção definida no código contém diferentes tipos de dados como itens, como o valor com índice numérico, o valor com a chave e outra matriz.

função pública read_keys ()
// Declare uma coleção
$ mixdata = colecionamento ([
['Site' => 'Google.com ',' tipo '=>' mecanismo de pesquisa '],' idioma '=>' php ',
1234, 'Nome' => 'Fahmida', 'Game' => 'PUBG', 'Color' => 'Blue']);
// Imprima a nova coleção gerada pelo método Keys ()
dd ($ mixdata-> keys ());

Adicione a seguinte rota no rotas \ web.php arquivo para ligar para o read_keys ().

Rota :: get ('key_collection', 'collectioncontroller@read_keys');

Digite o seguinte URL no navegador para verificar a saída.

http: // localhost: 8000/key_collection

A saída a seguir aparecerá após a execução do URL.

Conclusão

A coleção Laravel permite que você execute muitos tipos diferentes de tarefas com dados, como matrizes PHP. Alguns métodos úteis de coleta de Laravel são explicados neste tutorial usando código muito simples. Eloquent ORM é outro uso da coleção em Laravel que não é coberto neste tutorial. Uma grande limitação da aula de coleta é que ela gera uma nova coleção toda vez que um método é chamado porque não é mutável. Depois de ler este tutorial, o leitor agora deve conhecer alguns usos básicos da coleção Laravel.