• Czas czytania ~4 min
  • 11.07.2023

Laravel słynie z elegancji, prostoty i wyrazistości. Jedną z najpotężniejszych cech Laravel są jego funkcje pomocnicze. Pomocnicy macierzy Laravel są niezbędnym narzędziem dla programistów pracujących z tablicami danych.

W tym artykule omówimy niektóre funkcje pomocnicze tablicy Laravel, które powinien znać każdy programista. Ci pomocnicy mogą zaoszczędzić czas i ułatwić pracę z macierzami. Omówimy join(), , , , first()last(), keyBy()get()i pluck(). Zanurzmy się więc i zobaczmy, co mają do zaoferowania

pomocnicy Laravel!Łączenie

tablic Być może myślisz: "po co mi ten pomocnik, skoro mogę użyć join() lubimplode()?"

use Illuminate\Support\Arr;

$stack = ['Tailwind', 'Alpine', 'Laravel', 'Livewire'];

Arr::join($stack, ', ');
// Tailwind, Alpine, Laravel, Livewire
implode($stack, ', ');
// Tailwind, Alpine, Laravel, Livewire

Powyższe działają dokładnie tak samo, więc pozostawiam Tobie decyzję, który styl preferujesz.

join() Pomocnik naprawdę się przydaje, gdy chcesz, aby ostatnia wartość używała oddzielnego ciągu łączącego:

use Illuminate\Support\Arr;

$stack = ['Tailwind', 'Alpine', 'Laravel', 'Livewire'];

Arr::join($stack, ', ', ', and');
// Tailwind, Alpine, Laravel, and Livewire

Dane

tablicy kluczowej Czasami pobierasz tablicę danych (tj. Wiele produktów) i wprowadzasz dane według danego atrybutu produktu. W ten sposób można wygodnie kierować dane dla danego klucza.

Być może napisałeś coś takiego, tworząc nową zmienną i umieszczając w niej dane za pomocą kluczowej wartości:Korzystając z metody, możesz zrobić to samo z jednym wierszem kodu:Sprawdzanie i pobieranie danych z tablicy

 $array = [
    ['product_id' => 'prod-100', 'name' => 'Desk'],
    ['product_id' => 'prod-200', 'name' => 'Chair'],
];
$keyed = [];

foreach ($array as $value) {
    $keyed[$value['product_id']] = $value;
}
/*
    [
        'prod-100' => ['product_id' => 'prod-100', 'name' => 'Desk'],
        'prod-200' => ['product_id' => 'prod-200', 'name' => 'Chair'],
    ]
*/

Potężna metoda jest prosta w użyciu, ale zawiera potężną Arr::get() "notację kropkową", której można użyć do łatwego uzyskania zagnieżdżonych danych:

$keyed = Arr::keyBy($array, 'product_id');

Arr::keyBy()

use Illuminate\Support\Arr;

$data = [
    'products' => [
        'desk' => [
            'name' => 'Oakendesk'
            'price' => 599.00,
            'description' => 'Solid oak desk built from scratch.'
        ],
    ],
];
// 599.00
Arr::get($data, 'products.desk.price');

// Returns false
Arr::has($data, 'products.desk.discount');

// Returns null
Arr::get($data, 'products.desk.discount');

// Returns custom default value if not found.
Arr::get($data, 'products.desk.discount', ['type' => 'percent', 'value' => 10]);

Pobieranie pierwszego lub ostatniego elementu w tablicy

Kiedy masz tablicę i chcesz uzyskać ostatni element, możesz sięgnąć po end() funkcję w PHP:Jeśli twoja tablica jest pusta, otrzymasz false zamiast tego:Korzystając z pomocnika Laravela, masz wiele opcji, gdy tablica jest pusta:Użycie pomocnika Laravela last() umożliwia również przekazanie zamknięcia jako drugiego argumentu jako warunku, który element ma zwrócić odpowiednio pierwszy lub ostatni:

$array = [100, 200, 300, 110];

end($array);

$array = [];
end($array); // false

use Illuminate\Support\Arr;

$array = [];

Arr::last($array); // null

// Provide a default
Arr::last($array, null, 100); // 100

$array = [100, 200, 300, 110];

Arr::last($array, fn ($e) => $e > 110); // 300
Arr::first($array, fn ($e) => $e > 110); // 200

Prosty, ale potężny interfejs API dla wielu sytuacji, w których możesz się znaleźć podczas pobierania pierwszego lub ostatniego elementu w danych tablicy.

Pobieranie danych z tablicy

Czasami musisz uzyskać jeden skalarny fragment danych ze zbioru danych (np. Wiadomości e-mail od użytkowników):Pomocnik Arr::pluck() Laravela sprawia, że jest to trywialne:Dowiedz się więcej

$array = [
    ['user' => ['id' => 1, 'name' => 'User 1', 'email' => '[email protected]']],
    ['user' => ['id' => 2, 'name' => 'User 2', 'email' => '[email protected]']],
];
$emails = [];

foreach ($array as $result) {
    $emails[] = $result['user']['email'];
}
/*
[
    "[email protected]",
    "[email protected]",
]
*/

Mam nadzieję, że widziałeś motyw:

Arr::pluck($array, 'user.email');

pomocnicy zastępują zbędne zadania ekspresyjną składnią. Uważam, że mają one kilka innych zalet: możemy wykorzystać dodatkową moc, którą niektóre z tych metod zapewniają w razie potrzeby (tj. warunek zamknięcia w first() i ), i unika się tymczasowych zmiennych i last()pętli, które tworzą mentalne koszty ogólne dla powtarzalnych rzeczy.

Choć na pierwszy rzut oka pomocnicy funkcji w dowolnym języku mogą wydawać się zbędni przy użyciu wbudowanych funkcji językowych; Mam jednak nadzieję, że widziałeś, jak potężne mogą sprawić, że nadmiarowe rzeczy, które będziesz musiał zrobić w wielu swoich aplikacjach. Zarysowaliśmy tylko powierzchnię wszystkiego, co jest dostępne w klasieArr. Czasami potrzebujemy prostych pomocników tablicowych, a innym razem będziesz potrzebować mocy kolekcji.

Jeśli jesteś nowym użytkownikiem struktury Laravel, zapoznaj się z dokumentacją Helpers, aby dowiedzieć się więcej o wszystkich przydatnych pomocnikach ciągów i tablic na wyciągnięcie ręki w projektach Laravel. Prawdopodobnie będziesz potrzebować tych pomocników w innych projektach PHP, które również nie używają Laravel!

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

O

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

O autorze CrazyBoy49z
WORK EXPERIENCE
Kontakt
Ukraine, Lutsk
+380979856297