Laravel, eines der beliebtesten PHP-Frameworks, bietet eine Reihe leistungsstarker Methoden zur Datenmanipulation. Unter diesen werden pluck() und select() häufig beim Umgang mit Sammlungen verwendet. Obwohl sie ähnlich erscheinen mögen, dienen sie unterschiedlichen Zwecken. In diesem Artikel werden wir die Unterschiede zwischen diesen beiden Methoden untersuchen, erklären, wann sie jeweils verwendet werden sollten, und praktische Codierungsbeispiele bereitstellen, um ihre Verwendung in Laravel 11 zu demonstrieren.
Die pluck()-Methode dient zum Extrahieren von Werten aus einem einzelnen Schlüssel in einer Sammlung. Dies ist besonders praktisch, wenn Sie ein bestimmtes Attribut aus einer Sammlung von Arrays oder Objekten abrufen möchten.
Angenommen, Sie haben eine Produktsammlung und möchten nur die Produktnamen extrahieren:
$collection = collect([ ['product_id' => 'prod-100', 'name' => 'Desk'], ['product_id' => 'prod-200', 'name' => 'Chair'], ]); // Pluck only the names of the products $plucked = $collection->pluck('name'); $plucked->all(); // Output: ['Desk', 'Chair']
Darüber hinaus können Sie pluck() verwenden, um der resultierenden Sammlung benutzerdefinierte Schlüssel zuzuweisen:
$plucked = $collection->pluck('name', 'product_id'); $plucked->all(); // Output: ['prod-100' => 'Desk', 'prod-200' => 'Chair']
Die pluck()-Methode unterstützt auch das Extrahieren verschachtelter Werte mithilfe der Punktnotation:
$collection = collect([ [ 'name' => 'Laracon', 'speakers' => [ 'first_day' => ['Rosa', 'Judith'], ], ], [ 'name' => 'VueConf', 'speakers' => [ 'first_day' => ['Abigail', 'Joey'], ], ], ]); $plucked = $collection->pluck('speakers.first_day'); $plucked->all(); // Output: [['Rosa', 'Judith'], ['Abigail', 'Joey']]
Beim Umgang mit Sammlungen mit doppelten Schlüsseln verwendet pluck() den letzten Wert, der jedem Schlüssel zugeordnet ist:
$collection = collect([ ['brand' => 'Tesla', 'color' => 'red'], ['brand' => 'Pagani', 'color' => 'white'], ['brand' => 'Tesla', 'color' => 'black'], ['brand' => 'Pagani', 'color' => 'orange'], ]); $plucked = $collection->pluck('color', 'brand'); $plucked->all(); // Output: ['Tesla' => 'black', 'Pagani' => 'orange']
Die Methode select() in Laravel ähnelt eher der SELECT-Anweisung von SQL und ermöglicht es Ihnen, mehrere Schlüssel aus der Sammlung auszuwählen und nur diese Schlüssel als neue Sammlung zurückzugeben.
Betrachten wir eine Sammlung von Benutzern, deren Namen und Rollen Sie abrufen möchten:
$users = collect([ ['name' => 'Taylor Otwell', 'role' => 'Developer', 'status' => 'active'], ['name' => 'Victoria Faith', 'role' => 'Researcher', 'status' => 'active'], ]); $selectedUsers = $users->select(['name', 'role']); $selectedUsers->all(); // Output: [ // ['name' => 'Taylor Otwell', 'role' => 'Developer'], // ['name' => 'Victoria Faith', 'role' => 'Researcher'], // ]
Mit select() können Sie mehrere Attribute auf einmal aus der Sammlung abrufen.
Zweck:
Rückgabestruktur:
Verwendung:
Verwenden Sie pluck(), wenn:
Verwenden Sie select(), wenn:
In Laravel 11 bieten sowohl pluck() als auch select() flexible Möglichkeiten zum Bearbeiten von Sammlungen. Während pluck() das Extrahieren einzelner Attribute vereinfacht, gibt Ihnen select() mehr Kontrolle, wenn Sie mit mehreren Attributen arbeiten müssen. Wenn Sie die Unterschiede zwischen diesen beiden Methoden kennen, können Sie Ihre Datenbearbeitungsprozesse optimieren und saubereren, effizienteren Code schreiben.
Indem Sie sowohl pluck() als auch select() beherrschen, können Sie komplexe Datenstrukturen in Ihren Laravel-Anwendungen problemlos verarbeiten. Viel Spaß beim Codieren!
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3