Heim  >  Artikel  >  PHP-Framework  >  Detaillierte Erläuterung der neuen Sammlungsoperation when-Methode in Laravel5.4.12

Detaillierte Erläuterung der neuen Sammlungsoperation when-Methode in Laravel5.4.12

藏色散人
藏色散人nach vorne
2020-04-06 11:50:481986Durchsuche

Ab v5.4.12 enthalten Laravel Collections jetzt eine when-Methode, mit der Sie bedingte Aktionen für Elemente ausführen können, ohne die Kette zu unterbrechen.

Empfohlen: Laravel-Tutorial

Wie alle anderen Laravel-Erfassungsmethoden kann diese viele Anwendungsfälle haben. Wählen Sie einen davon aus und denken Sie daran, auf Abfragen basieren zu können Zu filternde Zeichenfolgenparameter.

Um dieses Beispiel zu veranschaulichen, gehen wir davon aus, dass wir eine Liste von Hosts aus dem Laravel News Podcast haben:

$hosts = [
    ['name' => 'Eric Barnes', 'location' => 'USA', 'is_active' => 0],
    ['name' => 'Jack Fruh', 'location' => 'USA', 'is_active' => 0],
    ['name' => 'Jacob Bennett', 'location' => 'USA', 'is_active' => 1],
    ['name' => 'Michael Dyrynda', 'location' => 'AU', 'is_active' => 1],
];

Alte Versionen Um basierend auf einer Abfragezeichenfolge zu filtern, können Sie Folgendes tun:

$inUsa = collect($hosts)->where('location', 'USA');
if (request('retired')) {
    $inUsa = $inUsa->filter(function($employee){
        return ! $employee['is_active'];
    });
}

Mit der neuen when-Methode können Sie diesen Vorgang jetzt in einer verketteten Operation ausführen:

$inUsa = collect($hosts)
    ->where('location', 'USA')
    ->when(request('retired'), function($collection) {
        return $collection->reject(function($employee){
            return $employee['is_active'];
        });
    });

Übersetzt aus Laravel News, Originallink https://laravel-news.com/laravel-collections -when -Methode

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der neuen Sammlungsoperation when-Methode in Laravel5.4.12. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen